Das große Krabbeln

CockroachDB 1.0: Die erste Cloud-native Open Source SQL-Datenbank
Kommentare

Kakerlaken wird allgemein nachgesagt, dass sie selbst einen nuklearen Weltkrieg überleben können. Ähnlich stabile globale und skalierbare Cloud-Services sollen sich mit dem Namensvetter CockroachDB erstellen lassen. Die Cloud-native SQL-Datenbank ist nun „production-ready“, wir haben uns die Features der CockroachDB 1.0 angesehen.

Es ist noch nicht lange her, da berichteten wir über Google Cloud Spanner, einen weltweit verteilten Datenbankservice. An dessen Entstehung war auch Ex-Googler Spencer Kimball maßgeblich beteiligt. Heute ist Kimball CEO von Cockroach Labs und vor wenigen Tagen veröffentlichte das Unternehmen mit CockroachDB 1.0 die erste produktionsfertige Version der Cloud-nativen Open Source SQL-Datenbank.

Der Begriff Cloud-native impliziert, wie CEO Kimball in seinem Blog-Eintrag zum Release formuliert, horizontale Skalierbarkeit, Überlebensfähigkeit, keine Single Points of Failure (SPOF) und automatisierbare Operationen. Plattformspezifische Behinderungen gehören per definitionem nicht dazu.

CockroachDB 1.0 – die Features

Wie eingangs erwähnt gelten Kakerlaken als besonders überlebensfähig. Der Name der verteilten SQL-Datenbank Cockroach ist daher mehr als nur ein Produktname: er soll auch sozusagen Programm des Ganzen sein. CockroachDB ist darauf ausgelegt, Fehler und Abstürze von Speichern, Systemen bzw. Server Racks und sogar ganzen Datenzentren zu überleben und die an die Datenbank angehängten Services verfügbar zu halten.

Leistung und Performanz spielt dabei natürlich auch eine Rolle. Die Latenz etwa soll bei CockroachDB selbst bei schwerwiegenden Fehlern minimal gehalten werden und persönliche Intervention bei solchen sei nicht nötig, versprechen die Macher. Damit CockroachDB 1.0 dies gewährleisten kann, werden die Daten für eine möglichst hohe Verfügbarkeit repliziert und deren Übereinstimmung mit dem Raft Consensus Algorithm garantiert. Wo die Repliken der Daten schlussendlich gespeichert werden, entscheidet der Nutzer selbst, je nachdem, gegen welche Ausfälle und Probleme er sie absichern möchte.

Das Admin UI / Quelle: Cockroach Labs

CockroachDB kann im ganz kleinen Rahmen auf dem eigenen lokalen PC laufen, auf einem Server oder einem Server Cluster und natürlich auch in privaten oder öffentlichen Clouds. Je nach Dateninput wächst die Datenbank und teilt sich automatisch auf, sobald die kritische Datenmenge erreicht wird. Dieser Prozess wird immer weitergeführt und kontinuierlich werden neue, sogenannte Ranges gebildet. Betreibt man mehrere Nodes, egal ob physisch vorhanden oder rein virtuell, werden die neuen Ranges immer auf diejenigen Nodes ausgelagert, die die geringste Last haben.

Durch die Unterstützung des PostgreSQL-Protokolls kann jede damit kompatible Programmiersprache eingesetzt werden. Zu den getesteten gehören unter anderem Java, Go, Ruby, Python, JavaScript, C++/C, Clojure, PHP und Rust. Auch Sicherheitsaspekte wurden bei der Entwicklung der CockroachDB berücksichtigt. Es gibt so unter anderem die Möglichkeit, die Kommunikation zwischen Nodes zu verschlüsseln und SSL-Zertifikate einzusetzen. Zudem unterstützt die SQL-Datenbank standardisierte SQL-Zugriffseinstellungen, bei denen der root-Nutzer Rechte an weitere einzelne Nutzer vergeben kann.

Go for PHP Developers

mit Terrence Ryan (google)

Everything you need to know about PHP 7.2

mit Sebastian Bergmann (thePHP.cc)

CockroachDB 1.1 und darüber hinaus

Für die Zukunft haben sich die Entwickler der Cockroach Labs einiges vorgenommen. Geplant ist etwa, CockroachDB „as a service“ anzubieten (DBaaS). Die Ex-Googler Spencer Kimball, Peter Mattis, Ben Darnell und ihr Entwicklerteam möchten mit ihrer Datenbank zukünftig vor allem große Unternehmen ansprechen. Daher ist bereits jetzt ein Feature geplant, bei dem Daten von Kunden möglichst nahe bei diesen gespeichert werden. Diese „Geopartitionierung“ wird bereits jetzt auf Ebene von vollständigen Tabellen und Datenbanken unterstützt. Geplant ist allerdings, dass jede Spalte einzeln als Partitionsschlüssel genutzt werden kann. Eine Betaversion dieser Funktionalität soll noch in diesem Jahr erscheinen.

In etwas näherer Zukunft, sprich für den Nachfolger CockroachDB 1.1, planen die Entwickler bessere Diagnose-Tools zu veröffentlichen. Auch die Performance soll noch einmal verbessert werden, genau wie die SQL Code Coverage.

Weitere Informationen zur CockroachDB 1.0 gibt es im offiziellen Blog-Eintrag zum Release, allgemeine Informationen zur Cloud-nativen Open Source SQL-Datenbank auf der Homepage von Cockroach Labs. Natürlich ist das Projekt auch auf GitHub zu finden. Eine Einführung gibt es von Cockroach Labs CEO Spencer Kimball auf YouTube:

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -