Permalink
Switch branches/tags
vector-clock-fixes v1.4.0 release-1.10.26-cutoff release-1.10.25-cutoff release-1.10.24-cutoff release-1.10.23-cutoff release-1.10.22-cutoff release-1.10.21-cutoff release-1.10.20-cutoff release-1.10.19.1-cutoff release-1.10.19-cutoff release-1.10.18-cutoff release-1.10.17-cutoff release-1.10.16-cutoff release-1.10.15-cutoff release-1.10.14-cutoff release-1.10.13-cutoff release-1.10.12-cutoff release-1.10.11-cutoff release-1.10.10-cutoff release-1.10.9-cutoff release-1.10.8-cutoff release-1.10.7-cutoff release-1.10.6-cutoff release-1.10.5-cutoff release-1.10.4-cutoff release-1.10.3-cutoff release-1.10.2-cutoff release-1.10.1-cutoff release-1.10.0-cutoff release-1.9.22-cutoff release-1.9.21-cutoff release-1.9.20-cutoff release-1.9.19-cutoff release-1.9.18-cutoff release-1.9.17-cutoff release-1.9.16-cutoff release-1.9.15-cutoff release-1.9.14-cutoff release-1.9.13-cutoff release-1.9.12-cutoff release-1.9.11-cutoff release-1.9.10-cutoff release-1.9.9-cutoff release-1.9.8-cutoff release-1.9.7-cutoff release-1.9.6-cutoff release-1.9.5-cutoff release-1.9.4-cutoff release-1.9.3-cutoff release-1.9.2-cutoff release-1.9.1-cutoff release-1.9.0-cutoff release-1.8.16-cutoff release-1.8.15-cutoff release-1.8.14-cutoff release-1.8.13-cutoff release-1.8.12-cutoff release-1.8.11-cutoff release-1.8.10-cutoff release-1.8.9-cutoff release-1.8.8-cutoff release-1.8.5-cutoff release-1.8.4-cutoff release-1.8.3-cutoff release-1.8.1-cutoff release-1.7.3-cutoff release-1.7.2-cutoff release-1.7.1-cutoff release-1.7.0-cutoff release-1.6.8-cutoff release-1.6.6-cutoff release-1.6.4 release-1.6.4-cutoff release-1.6.3-cutoff release-1.6.2-cutoff release-1.6.1-cutoff release-1.6.0-cutoff release-1.5.9-cutoff release-1.5.8-cutoff release-1.5.7-cutoff release-1.5.4-cutoff release-1.5.2-cutoff release-1.5.1-cutoff release-1.3.0-cutoff before-replicatype-was-removed before-donorbased-was-removed
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
75 lines (57 sloc) 2.55 KB
Getting Started
For the most up-to-date information see http://www.project-voldemort.com
## 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/voldemort-server.sh config/single_node_cluster &
jkreps@jkreps-md:/tmp/voldemort> ./bin/voldemort-shell.sh test tcp://localhost:6666
## run some random commands to put and get strings
> help
Commands:
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/VoldemortExample.java.
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 -- http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf
- http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
- OpenDHT and Bamboo papers
- BDB Performance: http://www.oracle.com/technology/products/berkeley-db/pdf/berkeley-db-perf.pdf
- Origin of vector clocks: http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf
- Brewer's conjecture: http://citeseer.ist.psu.edu/544596.html
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
Connector.handleRequest()