編按:本文綜合整理自 DoltHub Blog — DoltLite Beta 及 GitHub dolthub/doltlite,並加入 Siami 編輯部觀點與分析。
DoltLite 是什麼?
DoltLite 是 SQLite 的一個分支(fork)。從 SQL parser、query analyzer 到檔案系統介面層,全部沿用 SQLite 上游原版;唯一被替換的,是 B-tree 儲存層——改由 Dolt 既有的 Prolly Tree(內容定址的 B-tree)搭配單檔 chunk store 撐起。
簡單說,這是一個「SQLite + Git」的合體:你繼續寫 SQL,但底層每筆資料都自帶版本資訊,可以像 Git 一樣分支、合併、diff、push、pull、clone。
相較於 Dolt 過去得在版本控制儲存層上面重新實作整個 SQL engine(吃重且艱難),DoltLite 反過來利用 SQLite 已有的 SQL 引擎,只改寫儲存層——只需新增約 18,000 行 C 程式碼。
- 本地版控:分支、合併、diff、rebase、cherry-pick、reset 全套支援
- 遠端同步:push / pull / clone / fetch,後端可以是 DoltHub 或自架 remote
- GUI:附完整的 Dolt Workbench(含 agent 模式,能讓 AI agent 對 SQLite 操作後用
dolt_reset('--hard')救回)
五個月衝到 Beta:2,000 個 PR 是怎麼來的?
這個專案最初的動機非常隨性:作者 Tim Sehn 想找一個「不是玩具等級的真實問題」來測試 Steve Yegge 的 AI agent 編排工具 Gas Town。結果這場實驗,催生出一個資料庫產品。
幾個關鍵數字:
- 從啟動到 Beta:約 2,000 個 pull request
- 上游 SQLite 原始 C 程式碼被修改:只有 8 行
- 全新 C 程式碼量:約 18,000 行
- Beta 前儲存格式變更次數:12 次
- 穩定版格式已運行:57 個 release / 超過 3 個月
為什麼 agents 能在 SQLite 這種「工程量怪物」上做出有意義的進展?DoltHub 自己整理的條件是:
- 已有 Dolt 跟 SQLite 兩個成熟實作當參照
- SQLite 的介面剛好能乾淨地置換 Proly Tree
- SQLite 內建完整測試套件,可直接當 agent 的 oracle
- SQLite 程式碼規模適中,不會炸 context window
- 作者本身就是 Dolt 領域的 deep expert
- 預算幾乎無限
Beta 代表什麼?
DoltLite 進入 Beta 並非只是行銷詞。它的意義落在四個具體面向:
- 儲存格式穩定:未來 breaking change 會提供遷移路徑,使用者不必擔心升級爆檔
- SQL 相容性:通過 100% 的 sqllogictest(580 萬條複雜查詢);SQLite 的 892,277 條 TCL 接受度測試通過 99.46%,剩餘 4,809 條差異皆有明確原因
- 完整版控:上述 Git 式操作皆可用,並能與 DoltHub 同步
- 生產級效能:每晚自動跑 sysbench 風格基準並發佈到 GitHub
效能數字(相對 SQLite):
- 記憶體模式:讀慢 10%、寫慢 60%
- 檔案模式:讀幾乎打平、批次寫慢 10%
- 小量 autocommit 寫入:慢 3.1 倍(仍維持微秒級,~125µs vs ~400µs)
換句話說:日常 query 幾乎感覺不到差異;如果你會做大量小寫入,記得 batch 起來。
🚨 為什麼這件事重要
DoltLite 的意義遠超過「多了一個 SQLite 變體」。它是一次對 AI agent 工程能力的公開壓力測試,而且測出來的結果出人意料地正面。
過去兩年業界對 AI 寫程式最大的質疑是:context window 撐不住大型 codebase、超過幾千行的修改就會品質雪崩。DoltLite 正好是這種懷疑的反證樣本:
- 2,000 個 PR、18,000 行新 C 程式碼,全由 agent 在「無限預算 + 專家指導 + 既有測試 oracle」的條件下產出
- 上游 SQLite 僅被動到 8 行,代表 agent 對「不要亂碰 upstream」有紀律
- 最終通過 SQLite 99.46% 接受度測試 + 自家 1,935 條 version-control oracle 測試
- 沒有出現「能跑但不能 production 用」的傳統 AI 程式碼樣態
更值得注意的是,作者 Tim Sehn 並非靠 agent 取代工程師,而是把 agent 當實習生大軍——Oracle 比較、sysbench 跑分、PR 審查仍由人把關。這也回應了 Steve Yegge 在 Gas Town 推廣時的核心論點:「未來的瓶頸不是 code generation,而是 review 與 orchestration。」
對台灣與中文開發圈,DoltLite 帶來兩個直接可用的價值:
- Local-first 應用:想做離線優先的 App,但苦於 SQLite 沒有版本機制?DoltLite 直接補上
- Agent 工作流可審計:AI 改了你的資料庫後想 rollback?
dolt_reset --hard就能回到上一個 commit
🚨 數據解讀與質疑
這裡有幾個值得保留的數字與懷疑:
- 2,000 PR / 5 個月:換算下來每天約 13 個 PR。這個量級需要相當成熟的 agent orchestration(Gas Town 的「Ralph loop」與 multi-agent 編排機制是底層),不是單純 chatGPT 寫 code 能達到的量
- 12 次格式變更才穩定:說明早期資料遷移成本高,現在用 v12 的使用者風險已大幅降低
- 小寫入慢 3.1 倍:對 IoT 與即時系統是隱藏成本,DoltHub 自己建議盡量 batch
- 8 行上游改動:這是「乾淨介面 + 嚴格紀律」的結果,換成其他專案未必能複製
仍待觀察的風險:
- 儲存格式再變動的承諾:目前是「會給 migration path」,但沒有 SLA
- multi-writer 場景:DoltLite 用 graph lock sidecar 序列化寫入者,多進程併發寫入需要仔細設計(不是 SQLite 那種「隨便多執行緒都行」)
- gas town 依賴:agent 大軍的協作框架本身仍早期,框架一改 DoltLite 的維護成本就會改變
怎麼試?
- GitHub:https://github.com/dolthub/doltlite
- 官方 Beta 公告:https://www.dolthub.com/blog/2026-08-31-doltlite-beta/
- 釋出版本:v0.50.0
- 性能日報:performance-report.md
- Hacker News 討論:https://news.ycombinator.com/item?id=49516848
- 開發者社群:DoltHub Discord
#doltlite🪶頻道
對嵌入式資料庫需要 audit 與 rollback 的團隊、想把 SQLite 跟 AI agent 串起來的前端工程師、或單純對「agent 能撐多大的工程」感到好奇的讀者,這是一個值得花一個下午親手跑一遍的專案。