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年的选择。
  • 计划尽可能多地使用开放源代码来构建数据库。
  • 重写数据库的决定在当时被认为是疯狂,但现在看来是一个坚实的基础。
  • 作者表示这是最后一次重写,未来将继续在此基础上发展。
➡️

继续阅读