发布于2026-08-19 阅读(0)
扫一扫,手机访问
想必CnosDB社区的各位爱码士们,最近都留意到了,基于Rust版本的CnosDB Isipho已迁移至GitHub主站,而Go版本的CnosDB,社区团队也不再对其进行维护与支持了。在此,首先要向大家致以诚恳的歉意,之前计划与决策的仓促,给大家造成了不必要的困扰。但出于对社区负责的考量,这里为大家详细解释一下:我们为何要放弃Go,转而拥抱Rust来构建全新的时间序列数据库。
CnosDB 涅槃重生:弃用Go, 全面拥抱RustCnosDB Isipho,是一款基于Rust研发的时间序列数据库,其性能卓越、压缩比高、可用性强,且未来将满足分布式云原生的需求。自2022年3月起,CnosDB团队便在GitHub上开源了Isipho的源码,并持续构建系统。CnosDB Isipho专注于解决时间线膨胀问题,能够支持超大规模的时间序列,同时具备更出色的生态特性。若想深入了解CnosDB Isipho的特点及具体功能架构,可查阅其路线图:https://github.com/cnosdb/cnosdb/blob/main/README.md
第一个版本的CnosDB选取了Go作为开发语言,当时认为Go可以很好的处理易用性和系统性能的平衡,但是随着对于Go语言的深入了解,我们也发现Go语言在数据库系统编写,尤其是时序数据库编写中的问题。
Go带来的问题主要有:Go runtime带来的 GC会引起性能抖动,而时序数据库需要在大负载环境下极其稳定;Go对泛型支持也不好,语言表达能力受限,如果需要对资源进行更好的操作,对于开发人员的要求非常高。我们的Go版本的性能测评并没有显著优于已有头部产品。Go版本仍然有很多的问题要去解决,为了应对云原生带来的挑战,更好的服务好企业上云,Go版本需要对原来的版本进行大规模重构,以便:提高分布式扩展性以及实现最终一致性模型;提升免运维的能力;提升存储和查询性能;同时支持多租户,云原生。
在我们困扰于Go语言所带来的的问题时,CnosDB的Isipho团队已经在Rust上开展了近五个月的工作。相对于Go语言,Rust具有以下特性:Rust 无GC,更精确的内存控制,硬件亲和性高;Rust 支持范型 match 表达式,表达能力更加丰富;Rust 有更高的可靠性,可以在编译期发现各种错误。开发者对Rust的喜爱也是溢于言表。
随着Rust在基础软件领域的应用也蓬勃发展,甚至Linux也开始使用Rust进行系统内核的重构(https://www.zdnet.com/article/linus-torvalds-is-cautiously-optimistic-about-bringing-rust-into-the-linux-kernels-next-release/),而且越来越多的数据库厂商开始尝试使用Rust去实现系统,我们也坚信,使用Rust可以构建更好的服务于客户的时序数据库。
对于一个初创团队组织的开源社区,同时维护两个不同技术栈的产品,十分困难;团队也是很难进行有效的沟通和管理。开发团队在技术栈割裂的情况下已经艰难地进行了两个季度的工作,而我们观察到在我们社区上也有了分裂的迹象,有些爱码士倾向于Go版本的学习和使用,而更多的开发者涌入社区是因为我们的Rust版本和它的课程:《使用Rust构建一个TSDB》。
如上文所述,时序数据库在朝云原生生态大幅度迈进,在Go版本上去实现诸如多租户、云原生等功能,几乎就是把原来的代码推倒重新来。Rust版本的进展顺利,让我们选择不继续在错误的路上蒙眼狂奔,而是进行了一个艰难的取舍,放弃Go语言版本,并将公司的全部开发力量投入Rust版本的研发,向社区和用户交付更好的下一代时序数据库产品。
现在,CnosDB Isipho版本的存储引擎已经构建完毕,开发团队正在全力开发查询引擎和索引功能,计划将在今年年底之前带来单机版本的CnosDB Isipho。同时ConsDB也竭诚希望对时序数据库、对Rust有兴趣的爱码士们加入CnosDB社区,贡献代码或者成为全职开发者。社区活动不会减少,大家在期待CnosDB Isipho的同时,我们继续推出丰富内容,包括但不限于混沌工程的课程以及Rust的后续课程。
始于万物互联,开源横跨五洲。希望大家继续关注和支持CnosDB!
扫描下方二维码,加入 CC 进入 CnosDB 社区进入社区交流,CC 也会在群内分享直播链接哒


售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9