Project Voldemort

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Project Voldemort
Entwickler LinkedIn
Erscheinungsjahr 2009
Betriebssystem Cross-platform
Programmier­sprache Java
Kategorie Schlüssel-Werte-Datenbank
Lizenz Apache-Lizenz 2
http://project-voldemort.com/

Voldemort ist ein verteiltes Datenbankmanagementsystem, welches als persistente und fehlertolerante 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.[2]

Vorteile[Bearbeiten]

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 Neuverteilung der gesamten Daten.

Nachteile[Bearbeiten]

Voldemort bietet eine Anzahl von Nachteilen gegenüber anderen Datenbanken:

  • Beziehungen zwischen den Daten sind nicht abbildbar
  • Es existiert keine Abfragesprache, daher müssen Keys bekannt sein, um einen Value zu ermitteln
  • Es gibt keine Transaktionen und damit auch keine ACID-Eigenschaften
  • Das Projekt befindet sich noch in einer frühen Entwicklungsphase, der Einsatz in produktiven Systemen sollte daher gut abgewägt werden

Eigenschaften[Bearbeiten]

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[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1. a b Voldemort is a distributed key-value storage system. Project Voldemort - A distributed database. Abgerufen am 5. April 2011.
  2. a b Comparison to relational databases. Project Voldemort - A distributed database. Abgerufen am 5. April 2011.

Weblinks[Bearbeiten]