首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

DoltLite:具有 Git 风格版本控制的 SQLite 分支,使用 2k 代理 PR 构建

摘要

My baby is growing up. Just five months after launch , DoltLite is Beta, version 0.50.0 . DoltLite started as a lark. I needed a pet project to test with Steve Yegge ’s innovative agent orchestrator, ...

DoltLite the for SQLite and Beta version engine you Dolt
2026-09-01 1 阅读 约7分钟阅读 lbw1215
分享:
字号:
我的宝宝长大了。推出仅五个月后,DoltLite 就进入 Beta 版,版本 0.50.0。 DoltLite 最初只是为了好玩。我需要一个宠物项目来与 Steve Yegge 的创新代理协调器 Gas Town 进行测试。我想要一个真正的问题,而不是一个玩具。多年来我们一直想要 Dolt 的嵌入式版本,但用 C 或 Rust 重写 Dolt 的存储引擎是一个太过遥远的桥梁。 SQLite 似乎是该引擎的逻辑主机。一个特工团队能成功吗?仅需要大约 2,000 个拉取请求,但 DoltLite 的测试版证明代理团队当然可以。本文介绍了 DoltLite 是什么以及 Beta 版发布的含义。什么是 DoltLite # DoltLite 是 SQLite 的一个分支。 B 树层以上的所有内容都是相同的。这意味着 SQL 解析器和分析器、文件系统交互层和测试工具都是原生 SQLite。对于其他 Dolt 产品,我们必须在版本控制存储之上实现 SQL 引擎。构建 SQL 引擎很困难。通过 DoltLite,我们以用 C 编写版本控制存储引擎的成本获得了一个。B 树层被替换为由单个文件块存储支持的 Prolly 树。 Prolly 树是内容寻址的 B 树。这种神奇的数据结构为所有 Dolt 产品中的版本控制功能提供支持。这意味着您可以在 SQLite 包中获得 Dolt 和 Git 的所有版本控制功能。您是否曾经想过对 SQLite 进行分支、合并和比较? DoltLite 适合您。或者更重要的是,您是否曾经想要一个由 Git 风格的推送、拉取、克隆和获取提供支持的冲突感知 SQLite 同步引擎? DoltLite 适合您。您甚至可以使用 DoltHub 作为同步后端。贝塔是什么意思? # 那么 DoltLite 的测试版对您来说意味着什么? Beta 意味着四件事: 存储格式稳定性 SQL 兼容性 完整版本控制 生产性能 现场关于功能和稳定性的报告普遍是积极的。 SQLite 的测试电池确实令人印象深刻。 DoltLite 通过了这些测试以及定制的 Dolt oracle 测试套件。 DoltLite 已准备好供您尝试。存储格式稳定性 # DoltLite 开发过程中最大的抱怨是存储格式的变化。存储格式更改不向后兼容,要求用户保持相同版本或手动转储并重新导入其数据库。经过 12 次格式更改才达到 Beta 版。我们已经按照当前的格式发布了 57 个版本,或者说已经超过三个月的日历时间了。这种格式似乎是我们可以坚持使用的一种格式。存储格式现已稳定。未来任何重大更改都将有受支持的迁移路径。 DoltLite Beta 意味着您可以采用 DoltLite Beta,而不必担心存储格式发生重大变化。 SQL 兼容性 # SQLite 的 SQL 层经过了非常好的测试。 DoltLite 也通过了绝大多数这些测试,证明了 SQL 兼容性。 DoltLite 通过了 100% 的 sqllogictest,这是一组 580 万个复杂查询。查询层与 SQLite 相同,因此这是预期的。 SQLite 还附带了一套基于 892,277 个 TCL 的验收测试,用于测试更广泛的 SQLite API。 DoltLite 通过了 99.46%,有 4,809 个已知分歧。每个分歧都必须列出原因。主要原因是: 表由主键而不是 rowid 进行键控,以支持版本控制功能。一些测试直接检查 rowid 。 DoltLite 有块,而不是页。有些测试直接检查页面。没有 WAL 或日志 sidecar。跳过 WAL 和日志测试。 SQLite 用户会对 DoltLite 感到宾至如归。 DoltLite 的运行方式与 SQLite 类似,但具有额外的版本控制功能。完整版本控制#DoltLite 实现了 Dolt 的 Git 风格版本控制功能的核心套件。支持本地版本控制功能。分支、合并、差异、变基、樱桃选择和重置等等。支持远程版本控制:从自定义远程或 DoltHub 推送、拉取、克隆和获取。您甚至拥有带有代理模式的完整 Dolt Workbench GUI。在 SQLite 上释放代理并使用 dolt_reset('--hard') 如果它搞砸了。生产性能 #DoltLite 为您提供微秒级的嵌入式数据库性能,但会带来版本控制写入性能负担。读取接近奇偶校验。每天晚上,GitHub 上都会发布一份在标准 sysbench 风格基准测试上对 DoltLite 与 SQLite 进行比较的性能报告。昨晚的报告显示,内存 DoltLite 数据库的读取速度慢了 10%,写入速度慢了 60%。文件支持的数据库在读取方面具有同等性能,而在批量写入方面则慢 10%。最大的异常值是小型自动提交写入,它比 SQLite 慢 3.1 倍。对性能敏感的 DoltLite 工作流程应尽可能利用批量写入。即使对于自动提交写入,我们谈论的是微秒(即亚毫秒)的单独写入性能:在小型 GitHub 运行器上,SQLite 约为 125 微秒,而 DoltLite 约为 400 微秒。结论#DoltLite 是测试版!我们现在等待的就是用户。立即尝试 DoltLite
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱