Fetching contributors…
Cannot retrieve contributors at this time
75 lines (57 sloc) 2.54 KB
Getting Started
For the most up-to-date information see
## checkout and build
jkreps@jkreps-md:/tmp > svn co svn+ssh://cm01.corp/lirepo/voldemort/trunk voldemort
jkreps@jkreps-md:/tmp > cd voldemort
jkreps@jkreps-md:/tmp/voldemort > ant
## start single node cluster and connect to table named ÒtestÓ
jkreps@jkreps-md:/tmp/voldemort > ./bin/ config/single_node_cluster &
jkreps@jkreps-md:/tmp/voldemort> ./bin/ test tcp://localhost:6666
## run some random commands to put and get strings
> help
put key value -- Associate the given value with the key.
get key -- Retrieve the value associated with the key.
delete key -- Remove all values associated with the key.
preflist key -- Get node preference list for given key.
help -- Print this message.
exit -- Exit from this shell.
> put "hello" "there"
> get "hello"
version(0:1): "there"
> preflist "hello"
Node 0
host: localhost
port: 6666
available: yes
last checked: 4614 ms ago
Example usage in example/java/voldemort/example/
Example configurations in config/
Code layout
annotations - Helper annotations
client - Code specific to the client
cluster - domain model for a voldemort cluster
routing - Code specific to routing requests
serialization - Code for turning bytes into objects and vice versa
server - Code for handling client requests
store - All the store implementations used by both client and server
utils - Helpers!
versioning - Vector clock stuff
xml - Code for serializing the configuration data...should probably be move to serialization
Background Resources
- Amazon Dynamo Paper --
- OpenDHT and Bamboo papers
- BDB Performance:
- Origin of vector clocks:
- Brewer's conjecture:
Current build is from r19
Supporting other clients
- Each store is available via all protcols, they are seperated by port
- Wire format vs. protocol (HTTP vs. Tcp/IP), protocol buffers
- How to abstract wire format?
- A given serialization type may or may not be supported by the client language
Socket servers share threadpool?
A WireProtocol takes bytes and creates a voldemort request, and takes objects to create a voldemort response.
Likewise the client does the opposite