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 代理及其他多租户、强一致性关键应用的实用构建模块。
相关
- 项目
- 项目
- 项目
- 项目
- 项目