FoundationDB mixt NoSQL mit ACID

FoundationDB hat die Betaversion einer NoSQL-Datenbank veröffentlicht, die den Angaben des Unternehmens zufolge auch im hochskalierten Zustand immer noch die ACID-Eigenschaften aufweist.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 2 Min.
Von
  • Julia Schmidt

FoundationDB hat die Betaversion einer NoSQL-Datenbank veröffentlicht, die laut eigenen Angaben ACID-Transaktionen (Atomicity, Consistency, Isolation und Durability) anbietet – ein Feature, das in NoSQL-Systemen häufig der Skalierbarkeit zum Opfer fällt. Das Unternehmen hat mittlerweile drei Jahre Arbeit in FoundationDB gesteckt und stellt die Beta nun nach einer einjährigen Alpha-Phase zur Verfügung. Das Team hinter der Datenbank entwickelte ein nebenläufiges, Aktoren-nutzendes C++11-System namens Flow, das zur Implementierung des zentralen Key/Value-Speicher dient. Dieser funktioniert wohl mit einfachen Byte-Strings und ist von einigen Datenmodellschichten umgeben.

In diesen Schichten ist unter anderem die Unterstützung für Tupel implementiert, während andere Arrays, Tabellen, Graphen, Dokumente, Multimaps und einfache Indizes stellen. Die Tupelschicht unterstützt die Codierung von Integer-Werten, Unicode-Strings und Floating-Point-Angaben und dient als Grundlage für die darauf aufbauenden Datenmodellschichten. Operationen die auf letzteren ausgeführt werden, lassen sich zu Transaktionen gruppieren und bieten im Fehlerfall ein Rollback an.

Darüber hinaus stehen Dienstschichten mit Support für Blobs, Publish/Subscribe, verdichtete Spalten, räumliche Indizes und Task Buckets (zum Verteilen der Arbeit auf mehrere Clients) bereit. Mit diesen Schichten helfen Umsetzungen von Counters und Queues bei der Arbeit mit Datensätzen, bei denen es häufig zu Zugriffskonflikten und ähnlichem kommt. APIs in Python, Ruby, Node.js, Java und C lassen sich zum Zugriff auf die beschriebenen Schichten nutzen.

FoundationDB verspricht hohe Leistungen, weist allerdings auch auf Einschränkungen wie maximale Transaktions-, Schlüssel- und Wertgrößen hin. Außerdem werden wohl keine Transaktionen unterstützt, die länger als fünf Sekunden dauern.

Das FoundationDB-Projekt ist nicht quelloffen, die Entwickler überlegen sich allerdings den Code einiger Schichten und Sprach-Bindings freizugeben. Die Betaversion lässt sich nach dem Ausfüllen einer Registrierung und der Einwilligung in die Lizenzvereinbarungen herunterladen. (jul)