Merge pull request #396 from gaojieliu/FileFetcher_Stats
[voldemort.git] / NOTES
blob1108bd4ddc2c67e269c2481ab5162fafbd495673
1 Getting Started
3 For the most up-to-date information see http://project-voldemort.com
5 ## checkout and build
6 jkreps@jkreps-md:/tmp > svn co svn+ssh://cm01.corp/lirepo/voldemort/trunk voldemort
7 jkreps@jkreps-md:/tmp > cd voldemort
8 jkreps@jkreps-md:/tmp/voldemort > ant
10 ## start single node cluster and connect to table named ÒtestÓ
11 jkreps@jkreps-md:/tmp/voldemort > ./bin/voldemort-server.sh config/single_node_cluster &
12 jkreps@jkreps-md:/tmp/voldemort> ./bin/voldemort-shell.sh test tcp://localhost:6666
14 ## run some random commands to put and get strings
15 > help
16 Commands:
17 put key value -- Associate the given value with the key.
18 get key -- Retrieve the value associated with the key.
19 delete key -- Remove all values associated with the key.
20 preflist key -- Get node preference list for given key.
21 help -- Print this message.
22 exit -- Exit from this shell.
23 > put "hello" "there"
24 > get "hello"
25 version(0:1): "there"
26 > preflist "hello"
27 Node 0
28 host:  localhost
29 port: 6666
30 available: yes
31 last checked: 4614 ms ago
33 Example usage in example/java/voldemort/example/VoldemortExample.java.
34 Example configurations in config/
37 Code layout
39 annotations - Helper annotations
40 client - Code specific to the client
41 cluster - domain model for a voldemort cluster
42 routing - Code specific to routing requests
43 serialization - Code for turning bytes into objects and vice versa
44 server - Code for handling client requests
45 store - All the store implementations used by both client and server
46 utils - Helpers!
47 versioning - Vector clock stuff
48 xml - Code for serializing the configuration data...should probably be move to serialization
51 Background Resources
53 - Amazon Dynamo Paper -- http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf
54 - http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
55 - OpenDHT and Bamboo papers
56 - BDB Performance: http://www.oracle.com/technology/products/berkeley-db/pdf/berkeley-db-perf.pdf
57 - Origin of vector clocks: http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf
58 - Brewer's conjecture: http://citeseer.ist.psu.edu/544596.html
60 Current build is from r19 
63 Supporting other clients
64 - Each store is available via all protcols, they are seperated by port
65 - Wire format vs. protocol (HTTP vs. Tcp/IP), protocol buffers
66 - How to abstract wire format?
67 - A given serialization type may or may not be supported by the client language
69 Socket servers share threadpool? 
71 A WireProtocol takes bytes and creates a voldemort request, and takes objects to create a voldemort response.
72 Likewise the client does the opposite
74 Connector.handleRequest()