Datenbank Dolt 2.0: Branches und Commits fĂĽr SQL-Daten

Mit Version 2.0 bringt die Open-Source-Datenbank Dolt Vektordaten, adaptive Speicherung fĂĽr groĂźe Werte und ein neues Storage-Fundament.

vorlesen Druckansicht
Kleine Figuren sitzen auf leuchtenden Stäben, die von einem Zylinder ausgehen.

(Bild: Dolt)

Lesezeit: 3 Min.
Inhaltsverzeichnis
close notice

This article is also available in English. It was translated with technical assistance and editorially reviewed before publication.

Mit Dolt 2.0 ändert sich vieles an der Storage-Engine der versionierten SQL-Datenbank. Mehrere zentrale Funktionen sind nun erstmals standardmäßig aktiv: eine automatische Garbage Collection und ein neues Archivformat für historische Daten. Hinzu kommen ein Beta-Support für Vektordaten sowie ein neues Verfahren namens Adaptive Storage für Datentypen wie JSON oder BLOBs. Laut den Entwicklern erreicht Dolt zudem inzwischen bessere Sysbench-Werte als MySQL.

Das Open-Source-Projekt Dolt ist eine relationale Datenbank mit einer Versionsverwaltung nach Vorbild von Git. Entwickler können Datenbanken committen, branchen, mergen und Unterschiede zwischen Datenständen vergleichen. Technisch kombiniert das Projekt eine MySQL-kompatible SQL-Schicht mit einer eigenen versionierten Storage-Engine. Eingesetzt wird Dolt unter anderem für kollaborative Datenpflege, reproduzierbare Datensätze, Auditing oder Data-Engineering-Workflows.

Die nun standardmäßig aktive Garbage Collection entfernt nicht mehr referenzierte Datenblöcke im Hintergrund und soll vor allem den Betrieb großer oder stark verzweigter Datenbanken vereinfachen. Gerade bei versionierten Datenbanken wächst der Speicherbedarf schnell, da Dolt jede Änderung historisiert. Bislang mussten Administratoren die Bereinigung häufig manuell oder per geplantem Job anstoßen. Eine Online Garbage Collection, die auch im laufenden Betrieb arbeitet, hatte das Projekt bereits zuvor eingeführt.

Ebenfalls standardmäßig aktiv ist das neue Archivformat. Es speichert historische Datenstände kompakter und reduziert so den Speicherbedarf. Während der Entwicklung hatte das Projekt Einsparungen von bis zu 50 Prozent genannt. Das Format zielt vor allem auf Datenbanken mit vielen Snapshots oder langen Änderungshistorien und soll langfristige Archivierung sowie Cold-Storage-Szenarien erleichtern.

Videos by heise

Bei der Performance verweist DoltHub auf eigene Sysbench-Ergebnisse, in denen Dolt insgesamt leicht vor MySQL liegt. Sysbench ist ein verbreitetes Benchmark-Werkzeug für OLTP-Workloads und misst typische Datenbankoperationen wie Inserts, Updates und Reads. Laut Dokumentation schneidet Dolt bei Schreiboperationen rund 10 Prozent schneller ab als MySQL, während Lesezugriffe mit rund 5 Prozent noch etwas langsamer ausfallen. Performance galt bislang als eine der größten Hürden versionierter Datenbanken.

Neu ist auĂźerdem der Beta-Support fĂĽr Vektordaten. Dabei handelt es sich um numerische Embeddings, wie sie etwa KI-Anwendungen fĂĽr semantische Suche oder Retrieval-Systeme nutzen. Vergleichbare Funktionen bieten inzwischen auch PostgreSQL-Erweiterungen wie pgvector oder spezialisierte Vektordatenbanken. Die Release Notes sprechen allerdings ausdrĂĽcklich noch von einem Beta-Status.

Mit Adaptive Storage führt Dolt zudem eine neue Speicherstrategie für die Typen TEXT, JSON, GEOMETRY und BLOB ein. Große Inhalte kodiert die Engine dynamisch anders oder lagert sie aus. Die Entwickler vergleichen den Mechanismus mit TOAST aus PostgreSQL, das große Werte ebenfalls automatisch außerhalb der eigentlichen Tabellenzeilen ablegt. Ziel sind ein geringerer Speicherverbrauch und effizientere I/O-Zugriffe, etwa bei umfangreichen JSON-Dokumenten oder Binärdaten.

Details zu allen Änderungen finden sich in den Release Notes auf GitHub. Dolt 2.0 bleibt nach Angaben der Entwickler grundsätzlich kompatibel zu 1.x-Datenbanken. Allerdings lassen sich nicht alle mit 2.x erzeugten Datenbanken auch mit älteren 1.x-Clients lesen. Wer gemischte Deployments betreibt oder Rollbacks einplant, sollte das bei der Migration berücksichtigen.

(fo)