Skip to content

Repository files navigation

/**
@mainpage RAMCloud
See https://ramcloud.stanford.edu/wiki/display/ramcloud/General+Information+for+Developers for further details.
====================================
1. Building
====================================
1.1 Pre-requisites (Ubuntu)
A 64-bit linux !
g++ (at least 4.4)
git
python
perl
sudo apt-get install build-essential git-core libcppunit-dev libcppunit-doc doxygen libboost1.42-all-dev libprcre3-dev protobuf-compiler libprotobuf-dev libcrypto++-dev
1.2 Builds
Using GNU make, type:
$ make
This will build the client, server, and coordinator.
====================================
2. Running
====================================
To run you must have 3 things. A running coordinator, a running master,
and some kind of client. These all need to be run on the same host;
running on separate hosts requires more flags (see -C and -L on both
the coordinator and server binary).
2.1 Starting a coordinator
$ ./obj.master/coordinator
2.2 Starting a server
$ ./obj.master/server -M -r 0
This starts a RAMCloud process acting only as a master using 0 backups.
If the master can communicate with the coordinator process you should
see a log message ending with "My server ID is 1" after a second or so.
2.3
To make sure things are really working try running
$ ./obj.master/client
It should connect to the master and perform a few random operations.
If it is working then you have a working basic RAMCloud and you can
start writing more interesting applications.
2.4 Using the libramcloud.so library
Write a client application using the interface described in
src/RamCloud.h (see RamCloudMain.cc for an example).
Until we have a proper 'install' target compile with:
$ g++ -Lobj.master -lramcloud -Isrc -Iobj.master -o TestClient TestClient.cc
This is assuming TestClient.cc is in the ramcloud directory just above src.
Adjust your paths accordingly.
2.5 Using the Python bindings:
$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:obj.master PYTHONPATH=bindings/python python
>>> import ramcloud
>>> c = ramcloud.RAMCloud()
>>> c.connect()
>>> c.write(0, 0, 'Hello from Python!')
>>> c.read(0, 0)
====================================
3. Testing
====================================
3.1 Static Style Checking
$ make check
3.2 Unit Testing
$ make test
3.3 Integration Tests (Used as a pre-commit hook)
$ hooks/pre-commit
====================================
4. Source code layout
====================================
bindings/ Bindings in languages other than C/C++ for RAMCloud clients.
clientTests/ RAMCloud client codes for testing
docs/ Doxygen generated source documentation.
ft/ Fast Transport Prototype - with helper scripts.
GNUmakefile Primary Makefile to build everything.
hooks/ Scripts executed as hooks when certain git operations are called.
obj.master/ Build directory for the git branch "master". A separate one is created for each branch.
scripts/ Tools.
src/ Main source directory.
gtest/ git submodule that contains the code for google test
*/

About

unofficial RAMCloud mirror

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages