💡
原文英文,约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编写的插件。
🏷️
标签
➡️