HeadlinesBriefing favicon HeadlinesBriefing.com

DoltLite: SQLite-Fork mit Git-Style-Versionierung

Hacker News •
×

Mein Baby wächst. Nur fünf Monate nach dem Launch ist Dolt Lite Beta, Version 0.50.0. Dolt Lite fing als Scherz an. Ich brauchte ein Projekt, um mit Steve Yegges innovativem Agentenorchestrator, Gas Town, zu testen. Ich wollte ein echtes Problem, kein Spielzeug. Wir wollten schon lange eine eingebettete Version von Dolt, aber das Neuschreiben des Dolt-Speicher-Engines in C oder Rust war eine zu große Hürde. SQLite schien ein logischer Host für diesen Motor zu sein. Könnte ein Team von Agents das schaffen? Es hat etwa 2.000 Pull-Requests gedauert, aber Dolt Lite Beta beweist, dass ein Team von Agents das sicher könnte.

Was ist Dolt Lite

Dolt Lite ist ein SQLite-Fork. Alles über der B-tree-Ebene ist gleich. Das bedeutet den SQL-Parser und -Analysator, die Dateisystem-Interaktionsebene und den Test-Harness sind Stock-SQLite. Bei anderen Dolt-Produkten mussten wir einen SQL-Engine über versionsverwalteten Speicher bauen. Einen SQL-Engine zu bauen ist schwer. Mit Dolt Lite haben wir ihn zum Preis des Schreibens eines versionsverwalteten Speicher-Engines in C bekommen. Die B-tree-Ebene wurde durch einen Prolly Tree ersetzt, der von einem einzigen Datei-Chunk-Speicher unterstützt wird. Prolly Trees sind inhaltlich adressierte B-Bäume. Diese magische Datenstruktur ermöglicht die Versionskontroll-Funktionalität in allen Dolt-Produkten. Das bedeutet, Sie erhalten alle Versionskontroll-Funktionen von Dolt und Git in einem SQLite-Paket. Haben Sie je gewünscht, SQLite zu branchen, zu mergen und zu diff? Dolt Lite ist dafür da. Oder vielleicht sogar wichtiger, haben Sie je eine konfliktbewusste SQLite-Sync-Engine gewollt, angetrieben von Git-style push, pull, clone, and fetch? Dolt Lite ist dafür da. Oder vielleicht sogar wichtiger, haben Sie je eine konfliktbewusste SQLite-Sync-Engine gewollt, angetrieben von Git-style push, pull, clone, and fetch? Dolt Lite ist dafür da. Sie können sogar Dolt Hub als Ihren Sync-Backend verwenden.

Was bedeutet Beta?

Was bedeutet es also, dass Dolt Lite Beta ist, für Sie? Beta bedeutet vier Dinge: Storage Format Stability, SQL-Kompatibilität, Vollständige Versionsteuerung, Production Performance und Feldberichte über Funktionalität und Stabilität sind universell positiv. Die Testbatterie von SQLite ist wirklich beeindruckend. Dolt Lite besteht diese Tests ebenso wie ein benutzerdefiniertes Dolt-Oracle-Test-Suite. Dolt Lite ist bereit für Sie, es auszuprobieren. Storage Format Stability

Die größte Beschwerde im Entwicklungsprozess von Dolt Lite waren Storage Format Sprüngen. Storage Format Änderungen waren nicht abwärtskompatibel, was erforderte, dass Benutzer auf derselben Version bleiben oder ihre Datenbanken manuell dumpen und erneut importieren. Es hat 12 Format-Änderungen gedauert, um Beta zu erreichen. Wir waren 57 Releases lang, also über drei Monate Kalenderzeit, in der aktuellen Format. Dieses Format scheint eines, das wir beibehalten können. Das Storage Format ist jetzt stabil. Jede zukünftige breaking Changes wird einen unterstützten Migrationspfad haben. Dolt Lite Beta bedeutet, dass Sie adoptieren können, ohne Angst vor einem breaking Storage Format Change zu haben. SQL-Kompatibilität

Die SQL-Schicht von SQLite ist extrem gut getestet. Dolt Lite besteht den Großteil dieser Tests ebenfalls, was SQL-Kompatibilität beweist. Dolt Lite besteht 100% sqllogictest, ein Suite von 5.8M komplexen Abfragen. Die Abfrageschicht ist dieselbe wie bei SQLite, also ist das zu erwarten. SQLite wird auch mit einem Suite von 892.277 TCL-basierten Akzeptanztests geliefert, die eine breitere Oberfläche der SQLite API testen. Dolt Lite besteht 99,46% mit 4.809 bekannten Divergenzen. Jede Divergenz muss einen Grund haben. Die Top-Gründe sind: Tabellen werden durch den Primärschlüssel keyed, statt rowid, um Versionskontroll-Funktionalität zu unterstützen. Einige Tests inspectieren direkt rowid. Dolt Lite hat Chunks, nicht Seiten. Einige Tests inspectieren direkt Seiten. Es gibt keine WAL oder Journal Beilagen. WAL und Journal Tests werden übersprungen. SQLite-Benutzer werden sich mit Dolt Lite wie zu Hause fühlen. Dolt Lite funktioniert wie SQLite mit zusätzlichen Versionskontroll-Funktionen. Vollständige Versionsteuerung

Dolt Lite implementiert den Kernsuite der Git-Style-Versionsteuerungs-Funktionen von Dolt. Lokale Versionsteuerungs-Funktionen werden unterstützt. Branches, Merges, Diffs, Rebases, Cherry-Picks und Resets, nur um einige zu nennen. Remotes Versionsteuerung wird unterstützt: push, pull, clone, and fetch von einem custom remot...