Project Voldemort
Project Voldemort | |
---|---|
Basic data
|
|
developer | |
Publishing year | 2009 |
Current version |
1.10.25 ( July 27, 2017 ) |
operating system | Cross-platform |
programming language | Java |
category | Key-value database |
License | Apache license 2 |
http://www.project-voldemort.com/ |
Voldemort is a distributed database management system , which is designed as a persistent and fault-tolerant key value database (Key Value Store) and is used by LinkedIn as a high-scalability store. The name was borrowed from the villainous Lord Voldemort from the Harry Potter novel series . Voldemort's development is still ongoing.
advantages
Voldemort offers a number of advantages over other databases:
- It combines an in-memory cache with the storage system, so that a separate cache is not required. The storage system itself is correspondingly fast.
- It is possible to emulate the storage layer. This in turn makes the development and testing of components very easy, since development and testing can be carried out against a disposable in-memory system. It is not necessary to set up a real cluster or real storage system.
- Reading and writing scales horizontally .
- Simple programming interface: The programming interface decides on data replication and data distribution and offers space for a variety of application-specific strategies.
- Transparent data partitioning allows the cluster to be expanded without having to redistribute all of the data.
disadvantage
Voldemort has a number of disadvantages over other databases:
- Relationships between the data cannot be mapped
- There is no query language, so keys must be known in order to determine a value
- There are no transactions and therefore no ACID properties
- The project is still in an early development phase, so its use in productive systems should be carefully considered
properties
The Voldemort distributed database has the following properties:
- Data distribution: There is support for pluggable data distribution strategies, for example to enable distribution across remote data centers.
- Data replication: The data is automatically replicated to a large number of servers.
- Data partitioning: The data is automatically partitioned so that the server only contains a subset of the total data.
- Good single node performance: 10k-20k processes per second can be carried out, depending on the computer, network, disk system and data replication factor.
- Independent nodes: Each node is independent of other nodes without the need for central coordination. There is no single point of failure .
- Plugable serialization: It enables structured keys and values including lists and tuples with name fields as well as integration into general serialization frameworks. Examples of these frameworks are Avro, Java serialization, protocol buffer and Thrift.
- Transparent malfunctions: Server malfunctions are handled transparently so that users do not notice such problems.
- Versioning: The data is versioned in order to maximize the data integrity in the event of a malfunction, without reducing the availability of the system.
See also
Individual evidence
- ↑ Release 1.10.25 . July 27, 2017 (accessed March 15, 2018).
- ↑ a b Voldemort is a distributed key-value storage system . Project Voldemort - A distributed database. Archived from the original on April 23, 2011. Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved April 5, 2011.
- ↑ a b Comparison to relational databases . Project Voldemort - A distributed database. Archived from the original on April 23, 2011. Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. Retrieved April 5, 2011.