Rust在数据库领域的崛起:从InfluxDB到Databend

m
marvis

Rust重塑数据库:为什么2025年是转折之年

2025年,数据库领域出现了一个不可忽视的现象:新一代数据库产品几乎清一色地选择了Rust作为核心开发语言。从时序数据库InfluxDB 3的Go→Rust重写,到OLAP引擎Databend从零用Rust构建,再到Turso用Rust实现SQLite兼容的嵌入式数据库——Rust正在成为数据库基础设施的默认选择。

InfluxDB 3:4年半的重写之路

InfluxDB 3的Rust重写始于2020年,历时约四年半。CTO Paul Dix的决策逻辑非常清晰:不是为了语言本身,而是为了架构目标。三个核心需求——无限基数支持、原生SQL查询、存算分离——需要一个能高效集成C/C++查询引擎的底层技术栈。Rust通过FFI提供了比Go更优的C互操作性,使得InfluxDB能够直接嵌入Apache DataFusion作为查询引擎。

这个决策的成果已经显现:InfluxDB 3在边缘设备部署、内存效率和查询性能上均实现了代际提升,而开发团队也可以通过贡献DataFusion上游来撬动更大的社区资源。

Databend:零技术债的架构设计

与InfluxDB的"重写"路径不同,Databend从一开始就选择了Rust。作为云原生数据仓库,Databend的目标是打造一个兼顾分析、搜索、AI和Python沙箱的统一平台。Rust的零成本抽象、内存安全和强大的类型系统,让团队可以在不牺牲性能的前提下实现复杂的架构设计。

Databend对Iceberg表格式的支持则展示了Rust生态的扩展能力——通过Apache Arrow和Parquet的Rust绑定,Databend可以无缝融入现代数据湖架构。

Turso:SQLite兼容的新思路

Turso(原名Limbo)则代表了Rust在嵌入式数据库领域的一个新方向——用Rust实现SQLite兼容的数据库引擎。它支持SQLite的SQL方言、文件格式和C API,同时引入了BEGIN CONCURRENT和异步I/O(Linux上通过io_uring)等现代特性。这意味着开发者可以获得SQLite的兼容性和Rust的性能安全性。

更值得关注的是Turso的多语言绑定策略——JavaScript/WebAssembly、Rust、Go、Python、Java——这使它不仅是一个数据库,更是一个可在多种运行时环境中嵌入的数据组件。

小编观点

Rust在数据库领域的崛起不是偶然的。数据库是典型的高性能、高可靠性系统软件,对内存安全和并发控制有着极致要求——这些恰恰是Rust的设计出发点。更重要的是,Apache Arrow和DataFusion等Rust原生的数据基础设施正在形成网络效应。从InfluxDB到Databend再到Turso,我们看到的不只是三个数据库产品,而是一个以Rust为核心的现代数据技术栈正在成形。对系统开发者而言,掌握Rust已经从"加分项"变成了"必修课"。