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)