NoSQL: ScyllaDB skaliert flexibel mit Replikationsarchitektur von Google

Mit der Tablets-Replikationsarchitektur will Version 6.0 der NoSQL-Datenbank ihre Inhalte schneller und flexibler im Cluster verteilen.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen
Stilisiertes Datencenter

(Bild: Gorodenkoff/Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Scylla hat Version 6.0 ihrer NoSQL-Datenbank ScyllaDB veröffentlicht. Die seit ihren Anfängen auf hohe Performance ausgelegte Open-Source-Datenbank lernt mit dem aktuellen Release eine neue Replikationsarchitektur.

Außerdem bringt das Release Verbesserungen hinsichtlich strikt konsistenter Topologie-Updates und konsistente Updates für die Zugriffskontrolle.

ScyllaDB 6.0 setzt für die Datenverteilung im Cluster auf Tablets. Google hatte das Konzept erstmals für das verteiltes Datenbanksystem Bigtable eingeführt und nutzt es in dessen Nachfolger Spanner. Tablets umfassen mehrere Zeilen der Tabellen. Die Knoten von Bigtable enthalten dabei nicht die Daten, sondern lediglich Zeiger auf die Tablets.

Die Datenbank teilt die Tabellen in Tablets auf, die sie auf mehrere Knoten im Cluster verteilt.

(Bild: Scylla)

Der Load Balancer verteilt die Daten dynamisch und kann ihre Größe bei Bedarf verändern, also größere Tablets aufteilen oder kleinere zusammenführen. Die aufgeteilten Tablets verteilt der Load Balancer unabhängig voneinander auf unterschiedliche Knoten.

Auf die Weise kann das System flexibel auf Änderungen in den Anfragen, den Inhalten oder den zur Verfügung stehenden Knoten reagieren.

Kommt ein neuer Knoten hinzu, übernimmt er Tablets von stark ausgelasteten Knoten.

(Bild: Scylla)

Die Tablets-Architektur ist flexibler als das Konzept der Replikation mit Virtual Nodes, das ScyllaDB von Cassandra übernommen und bis Version 5.4 verwendet hat.

Die aktuelle Version von ScyllaDB nutzt die Tablets-Architektur standardmäßig. Wer sie deaktivieren möchte, weil die Architektur unter anderem keine Lightweight Transactions erlaubt, muss den jeweiligen Keyspace mit dem Flag tablets = { 'enabled': false } erstellen.

Die zweite große Neuerung sind strikt konsistente Topologie-Updates. Hierbei setzt Scylla auf den Raft-Algorithmus – hier hatte sich die Datenbank schon 2023 vom Vorbild Cassandra und dessen Paxos-Algorithmus verabschiedet.

ScyllaDB 6.0 aktiviert standardmäßig Raft-basierte, strikt konsistente Topologie-Updates für neue Cluster. Ein Beitrag in der Dokumentation erklärt, wie man existierende Cluster manuell umstellt.

Neben den Topologie-Updates garantiert die Datenbank nun auch strikt konsistente Authentifizierungs-Updates für rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) sowie konsistente Service Levels.

Das Team hinter ScyllaDB hat die NoSQL-Datenbank erstmals 2015 auf dem Cassandra-Summit vorgestellt. Die Datenbank war von Anfang an auf Kompatibilität zu Cassandra ausgelegt, sollte dabei aber deutlich performanter sein. Da sie in C++ geschrieben ist, während Cassandra auf Java setzt, benötigt sie keine Java Virtual Machine (JVM) mit dem zugehörigen Garbage Collector.

Ebenfalls aus Performancegründen verwendet ScyllaDB eine Shared-Nothing-Architektur, bei der jedes Datenfragment feste Ressourcen (CPU, RAM, Netzwerk und persistenter Speicher) erhält, um Verzögerungen und Blockaden beim Teilen von Daten zwischen Ressourcen zu umgehen.

Ende 2018 sprach Scylla im Blog zum Release von Version 3.0 von einem wichtigen Meilenstein, da das Unternehmen "die Feature-Parität mit Apache Cassandra übertroffen habe". Inzwischen geht die Datenbank in einigen Bereichen ihre eigenen Wege wie mit den neuen Tablets statt der VNodes oder mit Raft statt Paxos.

Weitere Neuerungen in ScyllaDB 6.0 wie das Nodetool zum Verwalten der Knoten von der Kommandozeile aus lassen sich dem Scylla-Blog entnehmen.

(rme)