Skip to content

Commit fbd0f95

Browse files
committed
Initial import
0 parents  commit fbd0f95

File tree

318 files changed

+25972
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

318 files changed

+25972
-0
lines changed

.classpath

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src/java"/>
4+
<classpathentry kind="src" path="test/unit"/>
5+
<classpathentry kind="src" path="test/integration"/>
6+
<classpathentry kind="src" path="test/common"/>
7+
<classpathentry kind="src" path="example/java"/>
8+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
9+
<classpathentry kind="lib" path="lib/catalina-ant.jar"/>
10+
<classpathentry kind="lib" path="lib/colt.jar"/>
11+
<classpathentry kind="lib" path="lib/commons-codec-1.3.jar"/>
12+
<classpathentry kind="lib" path="lib/commons-collections-3.1.jar"/>
13+
<classpathentry kind="lib" path="lib/commons-dbcp-1.2.2.jar"/>
14+
<classpathentry kind="lib" path="lib/commons-httpclient-3.1.jar"/>
15+
<classpathentry kind="lib" path="lib/commons-io-1.3.2.jar"/>
16+
<classpathentry kind="lib" path="lib/commons-lang-2.1.jar"/>
17+
<classpathentry kind="lib" path="lib/commons-logging.jar"/>
18+
<classpathentry kind="lib" path="lib/commons-pool-1.4.jar"/>
19+
<classpathentry kind="lib" path="lib/google-collect-snapshot-20080530.jar" sourcepath="lib/src/google-collections-src-snapshot-20080530.zip"/>
20+
<classpathentry kind="lib" path="lib/jdom.jar"/>
21+
<classpathentry kind="lib" path="lib/je-3.3.62.jar"/>
22+
<classpathentry kind="lib" path="lib/jetty-6.1.6rc0.jar"/>
23+
<classpathentry kind="lib" path="lib/jetty-util-6.1.6rc0.jar"/>
24+
<classpathentry kind="lib" path="lib/junit-4.1.jar"/>
25+
<classpathentry kind="lib" path="lib/log4j-1.2.13.jar"/>
26+
<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.5-bin.jar"/>
27+
<classpathentry kind="lib" path="lib/servlet-api.jar"/>
28+
<classpathentry kind="lib" path="lib/slf4j-api-1.4.3.jar"/>
29+
<classpathentry kind="lib" path="lib/slf4j-log4j12-1.4.3.jar"/>
30+
<classpathentry kind="lib" path="lib/velocity-1.5.jar"/>
31+
<classpathentry kind="lib" path="lib/xerces.jar"/>
32+
<classpathentry kind="output" path="classes"/>
33+
</classpath>

.project

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<projectDescription>
3+
<name>voldemort</name>
4+
<comment></comment>
5+
<projects>
6+
</projects>
7+
<buildSpec>
8+
<buildCommand>
9+
<name>org.eclipse.jdt.core.javabuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
13+
</buildSpec>
14+
<natures>
15+
<nature>org.eclipse.jdt.core.javanature</nature>
16+
<nature>com.sysdeo.eclipse.tomcat.tomcatnature</nature>
17+
</natures>
18+
</projectDescription>

.settings/org.eclipse.jdt.core.prefs

Lines changed: 266 additions & 0 deletions
Large diffs are not rendered by default.

.settings/org.eclipse.jdt.ui.prefs

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
#Fri Nov 28 00:09:45 PST 2008
2+
cleanup.add_default_serial_version_id=true
3+
cleanup.add_generated_serial_version_id=false
4+
cleanup.add_missing_annotations=true
5+
cleanup.add_missing_deprecated_annotations=true
6+
cleanup.add_missing_methods=true
7+
cleanup.add_missing_nls_tags=false
8+
cleanup.add_missing_override_annotations=true
9+
cleanup.add_serial_version_id=true
10+
cleanup.always_use_blocks=true
11+
cleanup.always_use_parentheses_in_expressions=false
12+
cleanup.always_use_this_for_non_static_field_access=false
13+
cleanup.always_use_this_for_non_static_method_access=false
14+
cleanup.convert_to_enhanced_for_loop=false
15+
cleanup.correct_indentation=true
16+
cleanup.format_source_code=true
17+
cleanup.format_source_code_changes_only=false
18+
cleanup.make_local_variable_final=true
19+
cleanup.make_parameters_final=false
20+
cleanup.make_private_fields_final=true
21+
cleanup.make_type_abstract_if_missing_method=false
22+
cleanup.make_variable_declarations_final=false
23+
cleanup.never_use_blocks=false
24+
cleanup.never_use_parentheses_in_expressions=true
25+
cleanup.organize_imports=true
26+
cleanup.qualify_static_field_accesses_with_declaring_class=false
27+
cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
28+
cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
29+
cleanup.qualify_static_member_accesses_with_declaring_class=true
30+
cleanup.qualify_static_method_accesses_with_declaring_class=false
31+
cleanup.remove_private_constructors=true
32+
cleanup.remove_trailing_whitespaces=false
33+
cleanup.remove_trailing_whitespaces_all=true
34+
cleanup.remove_trailing_whitespaces_ignore_empty=false
35+
cleanup.remove_unnecessary_casts=true
36+
cleanup.remove_unnecessary_nls_tags=true
37+
cleanup.remove_unused_imports=true
38+
cleanup.remove_unused_local_variables=false
39+
cleanup.remove_unused_private_fields=true
40+
cleanup.remove_unused_private_members=false
41+
cleanup.remove_unused_private_methods=true
42+
cleanup.remove_unused_private_types=true
43+
cleanup.sort_members=false
44+
cleanup.sort_members_all=false
45+
cleanup.use_blocks=false
46+
cleanup.use_blocks_only_for_return_and_throw=false
47+
cleanup.use_parentheses_in_expressions=false
48+
cleanup.use_this_for_non_static_field_access=false
49+
cleanup.use_this_for_non_static_field_access_only_if_necessary=true
50+
cleanup.use_this_for_non_static_method_access=false
51+
cleanup.use_this_for_non_static_method_access_only_if_necessary=true
52+
cleanup_profile=_voldemort
53+
cleanup_settings_version=2
54+
eclipse.preferences.version=1
55+
editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
56+
formatter_profile=_voldemort
57+
formatter_settings_version=11
58+
org.eclipse.jdt.ui.exception.name=e
59+
org.eclipse.jdt.ui.gettersetter.use.is=true
60+
org.eclipse.jdt.ui.ignorelowercasenames=true
61+
org.eclipse.jdt.ui.importorder=java;javax;org;com;
62+
org.eclipse.jdt.ui.javadoc=false
63+
org.eclipse.jdt.ui.keywordthis=false
64+
org.eclipse.jdt.ui.ondemandthreshold=99
65+
org.eclipse.jdt.ui.overrideannotation=true
66+
org.eclipse.jdt.ui.staticondemandthreshold=99
67+
org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"></template><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"></template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment"></template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"></template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
68+
sp_cleanup.add_default_serial_version_id=true
69+
sp_cleanup.add_generated_serial_version_id=false
70+
sp_cleanup.add_missing_annotations=true
71+
sp_cleanup.add_missing_deprecated_annotations=true
72+
sp_cleanup.add_missing_methods=false
73+
sp_cleanup.add_missing_nls_tags=false
74+
sp_cleanup.add_missing_override_annotations=true
75+
sp_cleanup.add_serial_version_id=false
76+
sp_cleanup.always_use_blocks=true
77+
sp_cleanup.always_use_parentheses_in_expressions=false
78+
sp_cleanup.always_use_this_for_non_static_field_access=false
79+
sp_cleanup.always_use_this_for_non_static_method_access=false
80+
sp_cleanup.convert_to_enhanced_for_loop=false
81+
sp_cleanup.correct_indentation=false
82+
sp_cleanup.format_source_code=true
83+
sp_cleanup.format_source_code_changes_only=false
84+
sp_cleanup.make_local_variable_final=false
85+
sp_cleanup.make_parameters_final=false
86+
sp_cleanup.make_private_fields_final=true
87+
sp_cleanup.make_type_abstract_if_missing_method=false
88+
sp_cleanup.make_variable_declarations_final=true
89+
sp_cleanup.never_use_blocks=false
90+
sp_cleanup.never_use_parentheses_in_expressions=true
91+
sp_cleanup.on_save_use_additional_actions=false
92+
sp_cleanup.organize_imports=true
93+
sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
94+
sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
95+
sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
96+
sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
97+
sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
98+
sp_cleanup.remove_private_constructors=true
99+
sp_cleanup.remove_trailing_whitespaces=false
100+
sp_cleanup.remove_trailing_whitespaces_all=true
101+
sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
102+
sp_cleanup.remove_unnecessary_casts=true
103+
sp_cleanup.remove_unnecessary_nls_tags=false
104+
sp_cleanup.remove_unused_imports=false
105+
sp_cleanup.remove_unused_local_variables=false
106+
sp_cleanup.remove_unused_private_fields=true
107+
sp_cleanup.remove_unused_private_members=false
108+
sp_cleanup.remove_unused_private_methods=true
109+
sp_cleanup.remove_unused_private_types=true
110+
sp_cleanup.sort_members=false
111+
sp_cleanup.sort_members_all=false
112+
sp_cleanup.use_blocks=false
113+
sp_cleanup.use_blocks_only_for_return_and_throw=false
114+
sp_cleanup.use_parentheses_in_expressions=false
115+
sp_cleanup.use_this_for_non_static_field_access=false
116+
sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
117+
sp_cleanup.use_this_for_non_static_method_access=false
118+
sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true

BUGS

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
1. Connection churn on mac os with many threads, not on Linux.
2+
2. Sporadic exception in read repair under very, very high concurrency:
3+
Exception in thread "pool-2-thread-2" java.util.NoSuchElementException
4+
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:844)
5+
at java.util.HashMap$KeyIterator.next(HashMap.java:877)
6+
at com.google.common.collect.StandardMultimap$WrappedCollection$WrappedIterator.next(StandardMultimap.java:469)
7+
at voldemort.store.routed.ReadRepairer.getRepairs(ReadRepairer.java:86)
8+
at voldemort.store.routed.RoutedStore$3.run(RoutedStore.java:293)
9+
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
10+
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
11+
at java.lang.Thread.run(Thread.java:613)
12+
3. Deletes should not attempt on unavailable nodes

NOTES

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
Getting Started
2+
3+
## checkout and build
4+
jkreps@jkreps-md:/tmp > svn co svn+ssh://cm01.corp/lirepo/voldemort/trunk voldemort
5+
jkreps@jkreps-md:/tmp > cd voldemort
6+
jkreps@jkreps-md:/tmp/voldemort > ant
7+
8+
## start single node cluster and connect to table named �test�
9+
jkreps@jkreps-md:/tmp/voldemort > ./bin/voldemort-server.sh config/single_node_cluster &
10+
jkreps@jkreps-md:/tmp/voldemort> ./bin/voldemort-shell.sh test tcp://localhost:6666
11+
12+
## run some random commands to put and get strings
13+
> help
14+
Commands:
15+
put key value -- Associate the given value with the key.
16+
get key -- Retrieve the value associated with the key.
17+
delete key -- Remove all values associated with the key.
18+
locate key -- Determine which servers host the give key.
19+
help -- Print this message.
20+
exit -- Exit from this shell.
21+
> put "hello" "there"
22+
> get "hello"
23+
version(0:1): "there"
24+
> locate "hello"
25+
Node 0
26+
host: localhost
27+
port: 6666
28+
available: yes
29+
last checked: 4614 ms ago
30+
31+
Example usage in example/java/voldemort/example/VoldemortExample.java.
32+
Example configurations in config/
33+
34+
35+
Code layout
36+
37+
annotations - Helper annotations
38+
client - Code specific to the client
39+
cluster - domain model for a voldemort cluster
40+
routing - Code specific to routing requests
41+
serialization - Code for turning bytes into objects and vice versa
42+
server - Code for handling client requests
43+
store - All the store implementations used by both client and server
44+
utils - Helpers!
45+
versioning - Vector clock stuff
46+
xml - Code for serializing the configuration data...should probably be move to serialization
47+
48+
49+
Background Resources
50+
51+
- Amazon Dynamo Paper -- http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf
52+
- http://www.allthingsdistributed.com/2007/12/eventually_consistent.html
53+
- OpenDHT and Bamboo papers
54+
- BDB Performance: http://www.oracle.com/technology/products/berkeley-db/pdf/berkeley-db-perf.pdf
55+
- Origin of vector clocks: http://research.microsoft.com/users/lamport/pubs/time-clocks.pdf
56+
- Brewer's conjecture: http://citeseer.ist.psu.edu/544596.html

0 commit comments

Comments
 (0)