descriptionVoldemort is a distributed key-value storage system
homepage URLhttp://www.project-voldemort.com
repository URLhttps://github.com/voldemort/voldemort.git
ownerjeffpc@josefsipek.net
last changeMon, 24 Jul 2023 13:49:47 +0000 (24 06:49 -0700)
last refreshFri, 19 Apr 2024 02:42:35 +0000 (19 04:42 +0200)
content tags
add:
README.md

Voldemort is a distributed key-value storage system

N.B.: Voldemort is no longer under development. LinkedIn was the primary maintainer and user of Voldemort, and stopped all production usage in 2018. Most of the Voldemort Read-Only use cases and some of the Read-Write use cases have migrated to Venice, which is actively maintained and also open sourced.

Overview

It is used at LinkedIn by numerous critical services powering a large portion of the site. .

QuickStart

You can refer to http://www.project-voldemort.com for more info

Download Code

cd ~/workspace
git clone https://github.com/voldemort/voldemort.git
cd voldemort
./gradlew clean build -x test

Start Server

# in one terminal
bin/voldemort-server.sh config/single_node_cluster

Use Client Shell

Client shell gives you fast access to the store. We already have a test store defined in the "single_node_cluster", whose key and value are both String.

# in another terminal
cd ~/workspace/voldemort
bin/voldemort-shell.sh test tcp://localhost:6666/

Now you have the the voldemort shell running. You can try these commands in the shell

put "k1" "v1"
put "k2" "v2"
get "k1"
getall "k1" "k2"
delete "k1"
get "k1"

You can find more commands by runninghelp

Want to dig into the detailed implementation or even contribute to Voldemort? A quick git guide for people who want to make contributions to Voldemort.

Comparison to relational databases

Voldemort is not a relational database, it does not attempt to satisfy arbitrary relations while satisfying ACID properties. Nor is it an object database that attempts to transparently map object reference graphs. Nor does it introduce a new abstraction such as document-orientation. It is basically just a big, distributed, persistent, fault-tolerant hash table. For applications that can use an O/R mapper like ActiveRecord or Hibernate this will provide horizontal scalability and much higher availability but at great loss of convenience. For large applications under internet-type scalability pressure, a system may likely consist of a number of functionally partitioned services or apis, which may manage storage resources across multiple data centers using storage systems which may themselves be horizontally partitioned. For applications in this space, arbitrary in-database joins are already impossible since all the data is not available in any single database. A typical pattern is to introduce a caching layer which will require hashtable semantics anyway. For these applications Voldemort offers a number of advantages:

Contribution

The source code is available under the Apache 2.0 license. We are actively looking for contributors so if you have ideas, code, bug reports, or fixes you would like to contribute please do so.

For help please see the discussion group, or the IRC channel chat.us.freenode.net #voldemort. Bugs and feature requests can be filed on Github.

Special Thanks

We would like to thank JetBrains for supporting Voldemort Project by offering open-source license of their IntelliJ IDE to us.

shortlog
2023-07-24 Felix GVUpdate README.mdmaster
2017-08-30 Felix GVReleasing Voldemort 1.10.26release-1.10.26release-1.10.26-cutoff
2017-08-30 Zsolt KatonaFixed the issue with too long command line in Windows...
2017-08-30 Felix GVAdded retries for soft errors in AdminClient#waitForCom...
2017-08-30 Felix GVThe RO server is now returning old async op IDs idempot...
2017-08-30 Siddharth SinghMerge pull request #487 from FelixGV/bnp-logging-improv...
2017-08-30 Felix GVImproved some BnP-related logging.
2017-07-27 Charles GaoReleasing Voldemort 1.10.25release-1.10.25-cutoff
2017-07-27 Charles GaoUpdated Gobblin dependency from 0.10.0 to 0.11.0
2017-07-21 Charles GaoRelease Voldemort 1.0.24release-1.0.24release-1.10.24release-1.10.24-cutoff
2017-07-21 Charles GaoAdded optional CDN feature to the BnP pipeline.
2017-06-09 Siddharth SinghMerge pull request #476 from FelixGV/fix_client_shell_l...
2017-06-09 Felix GVFixed the client shell's list parsing logic
2017-01-13 gaojieliuFix the connection leaking issue. (#469)
2017-01-07 gaojieliuFixed a compilation error introduced by last commit...
2017-01-06 Gaojie LiuAdded build.replica.factor check when decide whether...
...
tags
6 years ago release-1.10.26-cutoff tag for release 1.10.26
6 years ago release-1.10.25-cutoff
6 years ago release-1.10.24-cutoff
7 years ago release-1.10.23-cutoff tag for release 1.10.23
7 years ago release-1.10.22-cutoff tag for release 1.10.22
7 years ago release-1.10.19.1-cutoff tag for release 1.10.19.1
7 years ago release-1.10.21-cutoff tag for release 1.10.21
7 years ago release-1.10.20-cutoff tag for release 1.10.20
7 years ago release-1.10.19-cutoff tag for release 1.10.19
7 years ago release-1.10.18-cutoff tag for release 1.10.18
7 years ago release-1.10.17-cutoff tag for release 1.10.17
7 years ago release-1.10.16-cutoff tag for release 1.10.16
8 years ago release-1.10.15-cutoff tag for release 1.10.15
8 years ago release-1.10.14-cutoff tag for release 1.10.14
8 years ago release-1.10.13-cutoff tag for release 1.10.13
8 years ago release-1.10.12-cutoff tag for release 1.10.12
...
heads
8 months ago master
6 years ago release-1.10.26
6 years ago release-1.10.24
6 years ago release-1.0.24
7 years ago release-1.10.23
7 years ago release-1.10.22
7 years ago release-1.10.19.1
7 years ago release-1.10.21
7 years ago release-1.10.20
7 years ago release-1.10.19
7 years ago release-1.10.18
7 years ago adminClientFixes
7 years ago release-1.10.17
7 years ago release-1.10.16
7 years ago gh-pages
8 years ago release-1.10.15
...
forks
Cached version (1714s old)
voldemort/jeffpc.git Josef 'Jeff' Sipek's voldemort changes jeffpc@josefsipek.net 9 years ago