Zum Hauptinhalt Zur Navigation

CockroachDB: Die Datenbank, die alles überleben soll

Wie Küchenschaben soll die Datenbank CockroachDB auch die schlimmsten Ausfälle überleben, daher der Name. Das Team von ehemaligen Google-Entwicklern reimplementiert dafür Ideen von Spanner, das bei Google intern Mapreduce und Bigtable ablöst.
/ Sebastian Grüner
8 Kommentare News folgen (öffnet im neuen Fenster)
CockroachDB nutzt sehr viele Ideen von Google. (Bild: Cockroach)
CockroachDB nutzt sehr viele Ideen von Google. Bild: Cockroach

"Primäres Designziel ist globale Konsistenz sowie die Überlebensfähigkeit, daher der Name" , heißt es in der kurzen Beschreibung von CockroachDB. Cockroaches, auf Deutsch Schaben, überleben je nach Art viel höhere Strahlungsdosen als Menschen, mehrere Minuten Sauerstoffentzug oder auch das Abtrennen des Körpers. Die Datenbank soll dementsprechend Ausfälle der "Festplatten, Maschinen, Racks und Rechenzentren" mit minimaler Latenz aushalten.

Spanner als Ideengeber

Das skalierbare und verteilte Datenbanksystem wird, wie das US-Magazin Wired berichtet(öffnet im neuen Fenster) , derzeit fast ausschließlich von ehemaligen Google-Angestellten in deren Freizeit entwickelt. Wohl auch wegen dieser gemeinsamen Vergangenheit verwendet CockroachDB einige Ideen, die Google in Spanner benutzt, das Mapreduce und Bigtable ablösen soll. Die wohl herausragendste Funktion von Spanner, die Synchronisation dank verschiedener Zeitstempel, soll aber in CockroachDB so nicht umgesetzt werden.

4 Exabyte Speicher

Allerdings sollen wie mit den Verzeichnissen von Spanner in CockroachDB beliebige sogenannte Zonen für Daten angelegt werden können. Dadurch sollen sich Speichergeräte oder auch die Lage der Rechenzentren auswählen lassen, um "die Leistung und Erreichbarkeit der verteilten Datenbank zu optimieren" .

Grundlegend basiert CockroachDB auf einer Key-Value-Map, wobei sowohl für den Schlüssel als auch für den dazugehörigen Wert Byte-Strings verwendet werden und kein Unicode. Mit diesem Ansatz ließen sich theoretisch 4 Exabyte an Daten speichern, so die Entwickler. Einzelne Intervalle der Map speichern ihre Daten im darunterliegenden RocksDB und werden auf mindestens drei verschiedene Knoten verteilt, die idealerweise in weit voneinander getrennten Rechenzentren stehen. Die Konsistenz der Daten soll über den Raft-Algorithmus(öffnet im neuen Fenster) erhalten bleiben.

Noch befindet sich CockroachDB eigenen Aussagen zufolge in der Alphaphase, da viele wichtige Eigenschaften noch nicht benutzbar sind. Dazu gehören Transaktionen, der Raft-Konsens oder auch das Auftrennen der Intervalle der Map. Wenn die Arbeiten abgeschlossen sind, sollen Nutzer die Datenbank über einfache SQL-Anfragen als höchste Abstraktionsschicht steuern können.

CockroachDB wird hauptsächlich in der von Google initiierten Programmiersprache Go geschrieben und steht unter der Apache-Lizenz über Github zum Download(öffnet im neuen Fenster) bereit.


Relevante Themen