程式忍者PGNinja

Hacker News

開源專案 rqlite 走過十二年,回顧分散式 SQLite 的發展

· rqlite 創作者 Philip O'Toole 回顧自己在 2014 年打造的分散式 SQLite 專案,以及後續整個生態圈的演進。

rqlite 是一個開源專案,由 Philip O'Toole 於 2014 年 9 月發布,核心想法是把常見的輕量級資料庫 SQLite,加上 Raft 共識演算法,讓資料可以複製到多台機器上。它想解決的問題是:在分散式系統裡,有時候只需要一個小型的關聯式資料庫,但又不希望單一台機器故障就害資料全部消失。

技術上,rqlite 採用強一致性(CP)的架構設計,所有寫入動作都必須先經過叢集中的領導者節點,並得到多數節點確認後才算完成。專案最早使用 goraft 函式庫實作 Raft 演算法,2016 年改用 HashiCorp 的 Raft 實作,並提供 HTTP API、可調整的讀取一致性層級,以及快照機制來管理資料備份。

這篇文章值得注意的地方,在於它完整回顧了分散式 SQLite 這個領域十二年來的演進:2017 年 Canonical 推出用 C 語言寫的 dqlite,2021 年 Ben Johnson 推出把寫入日誌串流到 S3 的 Litestream,2022 年出現支援多寫入者的 cr-sqlite 與 Turso 開發的 libSQL。文章也提到,後來商業化的成功大多發生在平台公司身上(像是被 Supabase 收購的 Turso、Cloudflare D1),而最初的開源版本則持續維持免費。

對正在學程式的孩子來說,這篇文章是個很好的例子,說明一個開源專案可以怎麼「活很久」:創作者把一個簡單的點子(幫 SQLite 加上多機器複製能力)做出來後,持續維護十二年,中間還影響了後來一整群類似的專案誕生,這正是開源世界裡「一個好點子被大家接著做下去」的過程。

開源資料庫軟體架構

其他新聞