c't 26/2019
S. 140
Praxis
Verteilte Datenbanken
Aufmacherbild
Bild: Albert Hulm

Verteile und herrsche

Verteilte Datenbanken mit CockroachDB

Eine Datenbank ist das Herzstück vieler Anwendungen – und mit steigender Nutzung wird sie schnell zum Flaschenhals. Während sich gängige SQL-Datenbanken wie MySQL mit der Skalierung schwertun, ist CockroachDB darauf ausgelegt, auf vielen Servern synchron zu laufen – für Ausfallsicherheit und Performance.

Entwickler von Datenbank-Anwendungen, etwa dynamische Webseiten oder APIs, stehen häufig nach einigen Jahren vor dem Problem, dass der darunterliegende Server an seine Leistungsgrenzen kommt, wenn immer mehr Nutzer und Daten dazukommen. Einen Teil des Problems kann man mit Container-Technik sehr elegant lösen und schnell weitere Instanzen der Anwendung starten. Bei der Datenbank ist das dagegen ungleich komplizierter. Genau dieses Problem geht CockroachDB an. Die Datenbank ist von Anfang an darauf ausgelegt, Daten auf beliebig vielen Knoten auf dem gleichen Stand zu halten. Das ist attraktiv für Entwickler, die ihre Software besonders leistungsfähig, ausfallsicher oder weltweit gleich schnell erreichbar gestalten wollen.

CockroachDB hat auch kein Problem damit, dass einzelne Knoten mal ausfallen können oder wegen Netzwerkproblemen nicht erreichbar sind. Mit dem namensgebenden Tier, der Küchenschabe, hat CockroachDB zwei Dinge gemeinsam: Die Datenbank ist besonders robust konstruiert und die Server treten immer in Gruppen auf. Kommen einzelne Knoten gewaltsam zu Tode, gefährdet das nicht den Datenbestand.