您现在的位置是:首页 > 文章详情

Turso 发布 Limbo:用 Rust 重写 SQLite,重新定义嵌入式数据库未来

日期:2024-12-17点击:227

近日,Turso 团队正式发布了一个全新的开源项目——Limbo,一个采用 Rust 语言重写的 SQLite 数据库。这个项目不仅保留了 SQLite 的核心功能,还通过引入异步 I/O 和现代化架构,旨在解决嵌入式数据库在边缘计算和无服务器环境中的性能瓶颈。

为何要重写 SQLite?

SQLite 是全球最流行的嵌入式数据库之一,以其轻量、简单且可靠的设计广受欢迎。但 SQLite 基于 C 语言编写,缺乏内存安全保障,同时其封闭的开发模式使得外部贡献难以整合,这限制了部分扩展需求。

两年前,Turso 团队曾基于 SQLite 推出 libSQL 项目,这是一个开源贡献友好的分支,并成功引入了复制和向量搜索等功能。然而,当 Turso 在添加 异步 I/O分布式存储支持 等更复杂的特性时,现有架构的局限性逐渐显现。为了从根本上解决这些问题,Turso 决定通过完全重写的方式,用内存安全的 Rust 重塑 SQLite,Limbo 项目由此诞生。

核心技术亮点:异步 I/O 与 WASM 支持

Limbo 的最大技术突破是全面引入了 异步 I/O 技术,特别是在多租户和高并发场景下,显著降低了查询的 尾部延迟(p999)。SQLite 使用传统的同步 I/O 方式,查询时线程会被阻塞,导致资源浪费。而 Limbo 基于 Rust 的异步特性和 Linux io_uring 接口,允许查询任务非阻塞地进行,提升了系统的整体吞吐能力和资源利用率。

同时,Limbo 原生支持 WebAssembly(WASM) 环境,与现代前端工具无缝结合。例如,开发者可以将 Limbo 部署在浏览器中,通过简单的 SQL 查询操作本地数据,而无需依赖服务器端数据库,进一步拓展了 SQLite 在现代应用场景中的适配能力。

测试与可靠性:DST 的引入

针对数据库可靠性的挑战,Turso 在 Limbo 项目中引入了 确定性模拟测试(DST) 技术。这种测试方法能够模拟复杂的操作系统故障与事件顺序,帮助开发者发现极端情况下的潜在问题。此外,Turso 与 Antithesis 合作,利用系统级 DST 框架,实现对硬件和软件故障的高效模拟与验证,确保 Limbo 在各类场景下的稳定性。

性能初步验证与社区反馈

初步测试结果显示,在简单查询(如 SELECT * FROM users LIMIT 1)中,Limbo 的执行速度比 SQLite 快了约 20%。这种性能提升主要得益于异步 I/O 架构的优化。此外,Limbo 还简化了 SQLite 中部分冗余功能,降低了用户的调优成本,为开发者提供了更出色的开箱即用体验。

然而,Limbo 的出现也引发了社区的讨论。在 HackerNews 上,部分用户对重写 SQLite 表示支持,认为 Limbo 在边缘计算和无服务器架构下的创新意义重大,尤其是在降低延迟和提升并发性能方面。

但也有声音质疑重写的必要性,尤其是 SQLite 拥有成熟的代码和严谨的测试套件,而 Limbo 如何在短时间内达到同等的可靠性和性能成为了关注焦点。此外,有人指出,Limbo 的性能提升主要体现在极端尾部延迟(p999),而对于普通查询场景(p90、p99),其优势尚不明显。

未来展望

Turso 强调,Limbo 并非要与 SQLite 竞争,而是作为 libSQL 项目的下一步演进。如果 Limbo 在未来证明其成功,便会作为 libSQL 的核心代码库。整个项目采用 MIT 许可证,代码已在 GitHub 上开源,欢迎开发者参与贡献。

Limbo 的发布代表了数据库技术的一次重要尝试:通过现代语言和架构,让嵌入式数据库更适应云计算、无服务器与边缘计算的需求。虽然重写 SQLite 的挑战巨大,但 Limbo 已经迈出了第一步,它不仅探索了 SQLite 的未来,也引发了关于传统技术与现代需求如何结合的广泛讨论。

项目地址:https://github.com/tursodatabase/limbo

原文链接:https://www.oschina.net/news/325319
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章