加入 Hanzo 測試,任何付費方案享 50% 折扣

即日起正式推出 Hanzo Datastore:迎向後量子時代的欄式 OLAP 分析引擎

這是從 ClickHouse 分出的欄式倉儲,依 Hanzo S3 上儲存與運算分離的方式重做。透過剖析導引與連結期最佳化,常駐記憶體大約只剩一半,gRPC 也已移除,並留下一條通往無領導者、後量子協調的路。

本頁內容

今天我們推出 Hanzo Datastore,它是 Hanzo 資料平台裡負責 OLAP 的那一半。程式碼分自 ClickHouse 26.6,拿掉原本的品牌,再照我們實際跑分析的做法重做:儲存與運算分開,放在 Hanzo S3;最佳化過的執行檔更精簡;舊的 RPC 介面已經移除。映像檔現在就在 ghcr.io/hanzoai/datastore:26.6.1.1。

我們沒有另寫一套資料庫。ClickHouse 是世上最好的欄式引擎,我們以它為根基。動到的是經營一整隊機器時真正要緊的地方:儲存底層、建置、傳輸,以及協調往後怎麼走。

儲存與運算分開

MergeTree 資料表的 part 是不可變的物件。Datastore 把它們當成物件放在 Hanzo S3,也就是我們從 SeaweedFS 衍生的儲存層,而不是焊在某一台伺服器上的本機磁碟。沒有狀態的運算複本接著用零拷貝複寫,共用同一份實體資料。

這件事已經驗證,不是口號。在我們的橫向擴展測試裡,一張儲存原則指向 S3、有 500 萬列的表,會在 system.parts 回報磁碟 seaweed,兩台運算節點就在這唯一一份資料上擴出去。多加一個讀取端不會把資料再拷一份,而是直接掛上去。分析負載突然升高、得在幾秒內補上查詢容量、又不想把數 TB 重新搬動時,要的就是這個性質。

-- parts live on S3, not on a node's local disk
SELECT name, disk_name FROM system.parts WHERE table = 'events' LIMIT 1;
-- ┌─name──────┬─disk_name─┐
-- │ all_1_1_0 │ seaweed   │
-- └───────────┴───────────┘

記憶體大約少一半,執行檔更小

發行版建置會跑剖析導引最佳化、精簡的連結期最佳化,以及連結之後的 BOLT 處理。結果是常駐記憶體大約只有原版建置的一半,執行檔也明顯更小。要讓 BOLT 在 aarch64 上走通,得關掉 XRay 插樁。它原先預設開啟,並悄悄擋住連結後的改寫。這項修正已經在原始碼樹裡。實務上的差別是:同一份查詢計畫、更少的 GB,以及啟動更快的執行檔。

gRPC 已經拿掉

資料庫該有的查詢路徑正好一條,不是三條。我們把 gRPC 伺服端整段移除:沒有 contrib/grpc,沒有 protobuf 的服務定義,也沒有 ENABLE_GRPC 這條建置路徑。同一輪裡,預設設定中已經失效的 <grpc> 區塊也清掉了,讓送出去的產品和建置一致。Datastore 說的是原生 TCP(9000)、HTTP(8123),以及伺服器之間的複寫(9009)。表面到此為止。

接下來打算走的傳輸是 ZAP,我們從 Cap'n Proto 衍生的 RPC。伺服端的樁已經進樹,它還不是線上的查詢路徑。我們寧可把這條線目前停在哪裡講明白,也不假裝它已經完成。

協調要往哪裡走

Replicated* 資料表目前透過內嵌的 Raft 協調,也就是跟伺服器行程一起交付、相容於 ZooKeeper 的 Keeper,沒有另外的常駐程式。它能運作,也是你現在在正式環境裡跑的東西。

方向是用 Quasar 換掉這層 Raft 後端。Quasar 來自 Lux,是無領導者、後量子的共識,並以原生方式連進 C++ 伺服器。這道接縫是真的:已有 C++ 程式透過 C ABI 驅動原生共識引擎——打開一條鏈、追加一筆複寫紀錄、推進信心投票、觀察最終性——沒有 Raft,也沒有零知識那一套。這證明替換是連結問題,不是重寫。它還不是正式環境的協調層,我們也不會裝作它已經是。

另外一半

Datastore 做的是 OLAP。平台的 OLTP 那一半,是架在 SQLite/Base 上的去中心化 SQL 引擎:設計已定,正在打造,尚未交付。若你今天要的是本地優先、單一檔案的資料故事,這條脈絡已經出現在 Hanzo Brain;兩半共同乘坐的儲存底層,則是我們在 Hanzo Storage 推出的那一層。

跑起來

docker run -d --name datastore \
  -p 8123:8123 -p 9000:9000 \
  ghcr.io/hanzoai/datastore:26.6.1.1

arm64 映像檔現已公開;amd64 建置會經由 CI 接著跟上。這是我們自己在跑的分析與洞察後端。把事件打過來,再以欄式的速度查回去。

留言

使用 Hanzo ID 登入後即可留言。

正在載入留言…

繼續閱讀