从C++迁移到Rust?Clickhouse给出了一些建议

从C++迁移到Rust?Clickhouse给出了一些建议

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

Clickhouse是一个开源分析数据库,主要用C++开发。开发团队考虑将部分功能重写为Rust,以提升内存和线程安全性。尽管Rust有其优势,但与C++结合时也面临可重现构建和内存管理等挑战。最终,团队决定采取渐进式迁移,而非完全重写。

🎯

关键要点

  • Clickhouse是一个开源分析数据库,主要用C++开发。
  • 开发团队考虑将部分功能重写为Rust,以提升内存和线程安全性。
  • 团队决定采取渐进式迁移,而非完全重写。
  • C++的优势在于其成熟度和广泛的开发者基础,但也面临安全问题。
  • Clickhouse构建了一个庞大的CMake持续集成系统,以捕捉和修复各种类型的错误。
  • Rust提供了内存和线程安全性,但完全重写Clickhouse需要数年时间。
  • 团队采用迭代方法,逐步将Clickhouse的各个部分重写为Rust。
  • 与C++结合使用Rust时,面临可重现构建和内存管理等挑战。
  • Rust程序在高压下容易出现panic,可能影响实时应用的稳定性。
  • 引入Rust模块后,Clickhouse的依赖项数量显著增加。
  • Clickhouse目前决定不完全重写数据库系统,但允许第三方贡献Rust编写的插件。

延伸问答

Clickhouse为什么考虑将部分功能重写为Rust?

Clickhouse考虑重写部分功能为Rust是为了提升内存和线程安全性。

Clickhouse的开发团队选择了什么样的迁移策略?

开发团队决定采取渐进式迁移,而非完全重写。

使用Rust与C++结合时面临哪些挑战?

面临的挑战包括可重现构建、内存管理和增加的依赖项。

Clickhouse在C++中遇到的主要安全问题是什么?

主要安全问题包括内存损坏、分段错误和竞争条件。

Clickhouse如何确保新代码没有引入新错误?

Clickhouse构建了一个庞大的CMake持续集成系统,进行数十亿次测试以捕捉错误。

Clickhouse对Rust的看法是什么?

Clickhouse认为Rust是一种优秀的语言,并允许第三方贡献Rust编写的插件。

🏷️

标签

➡️

继续阅读