kronotop/kronotop
Distributed, transactional document database backed by FoundationDB.
Kronotop – 基於 FoundationDB 的分散式交易型文件儲存
是什麼 – Kronotop 是一個基於 Java 的資料庫,用於儲存類似 JSON(BSON)的文件與有序鍵值對。它運行在 Apple 的 FoundationDB 之上,繼承了 ACID、嚴格可序列化、自動分片與容錯能力。此服務支援 Redis/Valkey 的 RESP 協定(包含 RESP2 與 RESP3),因此任何現有的 Redis 客戶端皆可無需自訂驅動程式直接連接。
對 AI 為何重要 – 此系統專為需要大量隔離邏輯資料庫(稱為 命名空間)的工作負載設計——這在多租戶 AI 平台、每個代理的記憶體儲存或每個使用者的上下文快取中非常常見。每個命名空間僅是 FoundationDB 的鍵前綴,因此建立數百萬個命名空間成本極低。Kronotop 還提供:
- 向量索引(透過 JVector):支援在嵌入欄位上進行近似最近鄰搜尋,可在交易工作流程中實現快速相似性查找。
- 跨命名空間交易:單一交易可原子性地跨任意數量的命名空間進行讀寫操作。
- 次級索引(單欄位、複合、向量)與基於規則的查詢規劃器,可優化 BQL 查詢。
- ZMap:一個低階的有序鍵值 API,直接映射至 FoundationDB,公開原子性變更,適用於計數器、分散式鎖等情境。
核心概念
- 命名空間 – 在鍵空間層級隔離的階層式邏輯資料庫。
- Bucket – 文件模型;支援 CRUD、BQL 查詢、基於游標的串流與向量搜尋。
- ZMap – 原始有序鍵值操作的 RESP 兼容代理。
- 交易 – FoundationDB 交易的輕量封裝;預設自動提交,支援顯式
BEGIN … COMMIT區塊以實現多命令原子性。 - 叢集 – 數據被分片;每個分片位於主節點與可選的備用 Volume 複製節點上。叢集協調由 FoundationDB 完成。
典型用例
- LLM 驅動的助理中的每個代理或租戶的上下文儲存,每個代理擁有獨立命名空間,並可儲存嵌入向量與其他元資料。
- 需要強一致性之應用所需的水平可擴展交易型文件儲存。
- 基於 ZMap 的無衝突原子變更所建構的分散式協調原語(鎖、計數器等)。
- 結合傳統鍵值存取模式與向量相似性搜尋的工作負載。
成熟度 – 專案處於 開發者預覽 階段。核心架構與交易模型已穩定,但 API、內部格式與運作行為在 1.0 發布前仍可能變更。文件保持更新,但偶爾可能有延遲。
快速入門
- 安裝 Docker 並執行提供的快速啟動 compose 檔案:
curl -O https://kronotop.com/kronotop-quickstart.yaml docker compose -f kronotop-quickstart.yaml up - 使用內建的
kronotop-cli(或任何 Redis 客戶端)連接到客戶端埠(5484)進行資料操作,連接到管理埠(3320)進行叢集管理。 - 使用 README 中展示的 RESP 命令建立 Bucket,插入文件並查詢。
- 用於生產環境時,可透過 Maven 從原始碼建置,或從 GitHub Container Registry 拉取預先建置的 Docker 鏡像。
授權 – Apache License 2.0(寬鬆,適合商業使用)。
TL;DR – Kronotop 是一個基於 FoundationDB、兼容 RESP 的文件資料庫,提供低成本、隔離的命名空間、ACID 交易與內建向量搜尋——是 AI 代理及其他多租戶、強一致性關鍵應用的實用建構模組。
相關
- 專案
- 專案
- 專案
- 專案
- 專案