- Project Voldemort
-
Project Voldemort Entwickler LinkedIn Erscheinungsjahr 2009 Betriebssystem Cross-platform Programmiersprache Java Kategorie Schlüssel-Werte-Datenbank Lizenz Apache-Lizenz 2 http://project-voldemort.com/ Voldemort ist ein verteiltes Datenbankmanagementsystem, welches als Schlüssel-Werte-Datenbank (Key Value Store) ausgerichtet ist und von LinkedIn als Hoch-Skalierbarkeits-Speicher eingesetzt wird.[1] Der Name wurde dem schurkischen Lord Voldemort aus der Romanreihe Harry Potter entlehnt. Voldemorts Entwicklung ist noch nicht abgeschlossen. Sie ist weder eine objektorientierte noch eine relationale Datenbank. Sie versucht erst gar nicht, willkürlichen Relationen und ACID-Eigenschaften gerecht zu werden, sondern nur einer großen, verteilten, Fehler toleranten, persistenten Hash-Tabelle.[2]
Inhaltsverzeichnis
Vorteile
Voldemort bietet eine Anzahl von Vorteilen gegenüber anderen Datenbanken:[2]
- Sie kombiniert einen In-Memory-Cache mit dem Speichersystem, so dass ein separater Cache überflüssig ist. Das Speichersystem selbst ist entsprechend schnell.
- Es ist möglich, die Speicherschicht zu emulieren. Das wiederum gestaltet die Entwicklung und das Testen von Komponenten sehr einfach, da gegen ein Wegwerf-In-Memory-System entwickelt und getestet werden kann. Es ist nicht notwendig einen echten Cluster oder echtes Speichersystem aufzusetzen.
- Lesen und Schreiben skaliert horizontal.
- Einfache Programmierschnittstelle: Die Programmierschnittstelle entscheidet über Daten-Replikation und Daten-Verteilung und bietet Platz für eine Vielzahl von anwendungsspezifischen Strategien.
- Eine transparente Daten-Partitionierung gestattet die Cluster-Erweiterung ohne die Neugverteilung der gesamten Daten.
Eigenschaften
Die verteilte Datenbank Voldemort besitzt folgende Eigenschaften:[1]
- Daten-Verteilung: Es gibt eine Unterstützung plugbarer Daten-Verteilung-Strategien, um beispielsweise eine Aufteilung über weit entfernte Rechenzentren zu ermöglichen.
- Daten-Replikation: Die Daten werden automatisch auf eine Vielzahl von Servern repliziert.
- Daten-Partitionierung: Die Daten werden automatisch partitioniert, so dass der Server nur jeweils eine Teilmenge der gesamten Daten beinhaltet.
- Gute Einfach-Knotenpunkt-Performanz: 10k-20k-Vorgänge pro Sekunde können ausgeführt werden, je nach Rechner, Netzwerk, Disk-System und Daten-Replikations-Faktor.
- Eigenständige Knotenpunkte: Jeder Knotenpunkt ist unabhängig von anderen Knotenpunkten, ohne dass eine zentrale Koordination notwendig ist. Es gibt keinen Single Point of Failure.
- Plugbare Serialisierung: Sie ermöglicht sowohl strukturierte Schlüssel und Werte einschließlich Listen und Tupel mit Namensfeldern als auch die Integration in allgemeine Serialisierungs-Frameworks. Beispiele für diese Frameworks sind Avro, Java-Serialisierung, Protokoll-Buffer und Thrift.
- Transparente Fehlfunktionen: Server-Fehlfunktionen werden transparent gehandhabt, so dass Benutzer derlei Probleme nicht bemerken.
- Versionierung: Die Daten sind versioniert, um die Datenintegrität im Falle einer Fehlfunktion zu maximieren, ohne die Verfügbarkeit des Systems einzuschränken.
Siehe auch
Einzelnachweise
- ↑ a b Voldemort is a distributed key-value storage system. Project Voldemort - A distributed database. Abgerufen am 5. April 2011.
- ↑ a b Comparison to relational databases. Project Voldemort - A distributed database. Abgerufen am 5. April 2011.
Weblinks
Wikimedia Foundation.