InfluxDB正式从Go切换到Rust
💡
原文中文,约1100字,阅读约需3分钟。
📝
内容提要
InfluxDB是一个用Rust编写的开源时间序列数据库,使用Apache Arrow、Apache Parquet和Apache DataFusion作为基础构建模块。他们最终使用了Apache Arrow、Apache Parquet、Apache DataFusion和FlightSQL来构建数据库。
🎯
关键要点
- InfluxDB是一个用Rust编写的开源时间序列数据库。
- 使用Apache Arrow、Apache Parquet和Apache DataFusion作为基础构建模块。
- 从Go切换到Rust的原因包括没有垃圾收集器、无畏并发、性能和错误处理。
- 选择Rust开发第3版时,预计会使用大量C++代码,但最终决定使用Apache Arrow DataFusion。
- 重写的原因是为了满足无限基数、列式数据库性能、使用对象存储和兼容SQL等要求。
- InfluxDB的第1版和第2版是基于定制存储引擎和查询引擎构建的,无法实现无限卡入度或所需性能。
- 在2020年决定重写数据库时,选择了2020年的最佳语言而非2013年的选择。
- 计划尽可能多地使用开放源代码来构建数据库。
- 重写数据库的决定在当时被认为是疯狂,但现在看来是一个坚实的基础。
- 作者表示这是最后一次重写,未来将继续在此基础上发展。
➡️