FoundationDB: NoSQL-Datenbank mit ACID-Transaktionen

Eine schnelle NoSQL-Datenbank, die skaliert und ACID-Transaktionen unterstützt, verspricht FoundationDB. Dabei unterstützt FoundationDB globale Transaktionen über jede beliebige Zahl von Schlüsseln. Damit FoundationDB dennoch skaliert, erlaubt es die Datenbank vielen Clients, eine Transaktion ohne Locking gleichzeitig auszuführen und prüft alle Transaktionen auf Konflikte. Tritt ein Konflikt auf, muss die Transaktion nochmals begonnen werden. Die Konfliktprüfung wird dabei mit verteilten Algorithmen von Transaktionsservern durchgeführt, die FoundationDB aus den Cluster-Nodes rekrutiert. In der aktuellen Version unterstützt das System allerdings nur Transaktionen, die maximal 5 Sekunden laufen und maximal 10 MByte Daten schreiben. Zudem dürfen Schlüssel nicht länger als 10.000 Byte sein, die einzelnen Werte nicht größer als 100.000 Byte.
Zur Speicherung der Daten setzt FoundationDB auf eine verteilte Shared-Nothing-Architektur. Die Daten werden dabei in kleine Pakete gepackt und dann in Form mehrerer Kopien im Cluster verteilt.
FoundationDB ist zur Nutzung auf SSDs ausgelegt, was für hohe Geschwindigkeit sorgen soll. Mit der Memory-Storage-Engine können Daten zudem komplett im Speicher gehalten werden. Auf herkömmlichen Festplatten sollte die Software nicht genutzt werden.
Geschrieben wurde FoundationDB in Flow(öffnet im neuen Fenster) , einer neuen Programmiersprache, die FoundationDB entwickelt hat, um asynchrone Kommunikationsprozesse mit der hohen Geschwindigkeit von C++ abwickeln zu können. Es ist eine Art um Aktor-basierte Conurrency erweiterte Version von C++11. Flow ist als Compiler umgesetzt, der letztendlich C++11-Code erzeugt.
Gegründet wurde FoundationDB von Nick Lavezzo, Dave Rosenthal und Dave Scherer, die zuvor für das mittlerweile zu Adobe gehörende Unternehmen Visual Sciences gearbeitet hatten.



