forked from y-higuchi/ramcloud
-
Notifications
You must be signed in to change notification settings - Fork 2
Unofficial copy of RAMCloud repo
License
mriystm/ramcloud
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
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 copy of RAMCloud repo
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C++ 76.0%
- Python 11.6%
- C 11.2%
- Java 0.5%
- Lua 0.4%
- Shell 0.2%
- Other 0.1%