zurück zum Artikel

FoundationDB mixt NoSQL mit ACID

Julia Schmidt

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.

FoundationDB [1] 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 [2], das zur Implementierung des zentralen Key/Value-Speicher dient. Dieser funktioniert wohl mit einfachen Byte-Strings und ist von einigen Datenmodellschichten [3] 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 [4] 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 [5] 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 [6]. (jul [7])


URL dieses Artikels:
https://www.heise.de/-1818516

Links in diesem Artikel:
[1] http://www.foundationdb.com/
[2] http://www.foundationdb.com/white-papers/flow/
[3] http://www.foundationdb.com/documentation/beta1/data-modeling.html
[4] http://www.foundationdb.com/documentation/beta1/api-reference.html
[5] http://www.foundationdb.com/documentation/beta1/known-limitations.html
[6] http://www.foundationdb.com/get/
[7] mailto:jul@heise.de