Voldemort (distributed data store)

From Wikipedia, the free encyclopedia
(Redirected from Project Voldemort)
Jump to navigation Jump to search
Project Voldemort
Original authorLinkedIn / Microsoft
Initial release2009; 17 years ago (2009)
Stable release
1.10.25 / July 25, 2017; 8 years ago (2017-07-25)
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inJava
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Available inEnglish
    TypeDistributed data store
    LicenseApache License 2.0
    Websitewww.project-voldemort.com

    Voldemort is a distributed data store that was designed as a key-value store used by LinkedIn for highly-scalable storage.[1] It is named after the fictional Harry Potter villain Lord Voldemort.

    Overview

    [edit | edit source]

    Voldemort does not try to satisfy arbitrary relations and the ACID properties, but rather is a big, distributed, persistent hash table.[2] A 2012 study comparing systems for storing application performance management data reported that Voldemort, Apache Cassandra, and HBase all offered linear scalability in most cases, with Voldemort having the lowest latency and Cassandra having the highest throughput.[3]

    In the parlance of Eric Brewer's CAP theorem, Voldemort is an AP type system.

    Voldemort's creator and primary corporate contributor, LinkedIn, has migrated all of their systems off of Voldemort as of approximately August 2018, with no replacement sponsor as of October 2018.[4] In 2022, LinkedIn announced Project Venice as an open source replacement[5]

    Properties

    [edit | edit source]

    Voldemort uses in-memory caching to eliminate a separate caching tier. It has a storage layer that is possible to emulate. Voldemort reads and writes scale horizontally. The API decides data replication and placement and accommodates a wide range of application-specific strategies.[2][6]

    The Voldemort distributed data store supports pluggable placement strategies for distribution across data centers. Data is automatically replicated across servers. Data is partitioned meaning a single server contains only a portion of the total data. Each data node is independent to avoid central point of failure. Pluggable serialization allows rich keys and values including lists and tuples with named fields, as well as the integration with common serialisation frameworks such as Avro, Java Serialization, Protocol Buffers, and Thrift. Server failures are handled transparently. Data items are versioned, which maximizes data integrity.[1]

    See also

    [edit | edit source]

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').

    References

    [edit | edit source]
    1. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ project-voldemort mailing list post. 2018-08-16. Retrieved 2018-10-06.
    5. ^ linkedin post. 2022-09-26. Retrieved 2023-11-29.
    6. ^ Serving Large-scale Batch Computed Data with Project Voldemort
    [edit | edit source]