HeadlinesBriefing favicon HeadlinesBriefing.com

DoltLite:Git スタイルのバージョン管理を備えた SQLite フォーク

Hacker News •
×

私の赤ちゃんは成長しました。ローンチからわずか5ヶ月で、Dolt Lite は Beta、バージョン 0.50.0 になりました。Dolt Lite は冗談から始まりました。Steve Yegge の革新的なエージェントオーケストレータ、Gas Town でテストするプロジェクトが必要でした。おもちゃではなく、本物の問題が必要でした。我々は組み込みの Dolt を長年望んでいましたが、Dolt のストレージエンジンを C や Rust に書き直すのは橋渡しすぎました。SQLite はそのエンジンの論理的なホスト seemed to be. エージェント チームがやり遂げられるか? 約 2,000 のプルリクエストしかかからなかったですが、Dolt Lite が Beta になったことは、エージェント チームが間違いなくできたことを証明しています。

Dolt Lite とは何か

Dolt Lite は SQLite のフォークです。B-tree レイヤー以上のすべては同じです。つまり SQL パーサーとアナライザ、ファイルシステムインタラクションレイヤー、およびテストハーネスは stock SQLite です。他の Dolt 製品では、バージョン管理ストレージの上に SQL エンジンを実装する必要がありました。SQL エンジンを作るのは難しいです。Dolt Lite で我々はコストを払って C でバージョン管理ストレージエンジンを書くだけで SQL エンジン を得ました。B-tree レイヤーは、単一ファイルチャンクストアによってバックアップされた Prolly Tree に交換されました。Prolly Trees はコンテンツアドレス指定 B ツリーです。この魔法のデータ構造は、すべての Dolt 製品でバージョン管理機能を支えています。つまり、SQLite パッケージで Dolt と Git のすべてのバージョン管理機能が得られます。SQLite にブランチ、マージ、ディフをしたいと思ったことはありますか? Dolt Lite はあなたのためにあります。あるいは、もっと importantly、Git-style push, pull, clone, and fetch で駆動される衝突意識 SQLite 同期エンジンを望んだことはありますか? Dolt Lite はあなたのためにあります。あるいは、もっと importantly、Git-style push, pull, clone, and fetch で駆動される衝突意識 SQLite 同期エンジンを望んだことはありますか? Dolt Lite はあなたのためにあります。Dolt Hub を同期バックエンドとして使用することもできます。

Beta って何意味?

では、Dolt Lite が Beta になったことはあなたにとって何を意味するのか? Beta は 4 つのことを意味します:ストレージフォーマットの安定性、SQL 互換性、フルバージョン管理、プロダクションパフォーマンス、およびフィールドからの機能と安定性に関する普遍的にポジティブなレポート。SQLite のテストバッテリは本当に印象的です。Dolt Lite はそれらのテストに合格し、Dolt カスタムスイートのテストにも合格しています。Dolt Lite は試す準備ができています。ストレージフォーマットの安定性

Dolt Lite 開発プロセスで最大の不満はストレージフォーマットのバンプでした。ストレージフォーマットの変更はバックワード互換性がなく、ユーザーが同じバージョンに留まるか、データベースを手動でダンプして再インポートする必要がありました。Beta に到達するために 12 回のフォーマット変更が必要でした。我々は 57 リリース分、あるいは暦時間で 3 ヶ月以上同じフォーマットにいました。このフォーマットは残り続けられると思われます。ストレージフォーマットは now 安定しています。今後の破壊的変更はサポートされるマイグレーションパスを持つことになります。Dolt Lite Beta ということは、ストレージフォーマットの破壊的変更を恐れずに導入できます。SQL 互換性

SQLite の SQL レイヤーは極めてよくテストされています。Dolt Lite はこれらのテストのほとんどに合格し、SQL 互換性を証明しています。Dolt Lite は sqllogictest の 100% をパスしています、5.8M 複雑なクエリのスイート。クエリレイヤーは SQLite と同じなのでこれは予想されています。SQLite も 892,277 TCL ベースの受け入れテストのスイートを付属しており、より広い SQLite API の表面をテストしています。Dolt Lite は 99.46% をパスしており、4,809 の既知の divergence があります。各 divergence は理由をリストする必要があります。上位の理由は:テーブルは primary key でキーされており、rowid の代わりにバージョン管理機能をサポートしています。いくつかのテストは直接 rowid を検査します。Dolt Lite は chunks を持ち、ページは持ちません。いくつかのテストは直接ページを検査します。WAL や journal サイドカーはありません。WAL と journal のテストはスキップされています。SQLite ユーザーは Dolt Lite に慣れ親しむでしょう。Dolt Lite は extra version control functions を持って SQLite のように動作します。フルバージョン管理

Dolt Lite は Dolt のコアスイートの Git スタイルのバージョン管理機能を実装しています。ローカルバージョン管理機能がサポートされています。ブランチ、マージ、ディフ、rebase、cherry-picks、そしてリセット、いくつかを挙げて。リモートバージョン管理がサポートされています:push, pull, clone, and fetch から custom remot...