Zum Hauptinhalt Zur Navigation

Apollo: Facebook stellt eigene NoSQL-Datenbank vor

Auf einer Konferenz hat Facebook-Entwickler Jeff Johnson die NoSQL-Datenbank Apollo vorgestellt, an der seit etwa einem Jahr gearbeitet wird. Sie orientiert sich an den Funktionen von Hbase. Ob Apollo Open Source wird, steht noch nicht fest.
/ Sebastian Grüner
24 Kommentare News folgen (öffnet im neuen Fenster)
Facebook stellt Apollo vor. (Bild: Facebook)
Facebook stellt Apollo vor. Bild: Facebook

Auf der Qcon in New York hat der Facebook-Entwickler Jeff Johnson die intern entwickelte NoSQL-Datenbank Apollo erstmals der Öffentlichkeit vorgestellt(öffnet im neuen Fenster) . Apollo ist stark von den Erfahrungen beeinflusst, die Facebook mit Hbase(öffnet im neuen Fenster) gemacht hat, wie Sander Mak schreibt, der den Vortrag in seinem Blog(öffnet im neuen Fenster) zusammenfasst.

Demnach ist Apollo komplett in C++ nach dem Standard von 2011 geschrieben und verwendet das Software-Framework Thrift.(öffnet im neuen Fenster) Als grundlegende Komponente setzt Apollo auf Shards(öffnet im neuen Fenster) , die hierarchisch angeordnet werden. Dies ist ähnlich wie die HDFS-Regions in Hblock. Apollo unterstützt " Tausende von Shards " und kann laut dem Bericht auf bis zu etwa 10.000 Servern verwendet werden.

Die Shards benutzen Quorum-Protokolle zur Kommunikation, die an Paxos(öffnet im neuen Fenster) angelehnt sind. Zur Konsens-Ermittlung wird der Raft-Algorithmus(öffnet im neuen Fenster) verwendet. Als unterliegender Datenspeicher kann RocksDB oder MySQL verwendet werden. Erlaubte Speicher-Datentypen sind Boolsche Werte, Maps, Vorrangwarteschlange(öffnet im neuen Fenster) sowie CRDTs. Der Vorteil von Apollo ist die Speicherung dieser Datentypen bei sehr geringer Latenzzeit. Neben dem Speichern und Durchsuchen nach Werten erlaubt Apollo aber auch das Ausführen von " Code in Form von fehlertoleranten Automaten ". Bei Facebook wird Apollo derzeit als In-Memory-Datenbank genutzt, die Memcached ersetzt. Ebenso wird Apollo für Taco verwendet, der im Speicher vorhandenen Version des TAO-Graph(öffnet im neuen Fenster) , oder um die Push-Nachrichten zu verwalten. Noch ist nicht abschließend geklärt, ob Facebook Apollo als freie Software bereitstellt.


Relevante Themen