vlambda博客
学习文章列表

最后一刻发现 bug,Cassandra 4.0 被迫推迟发布时间

整理 | 核子可乐、晓旭
要发布快还是要迭代稳定,这是个值得思考的问题。

Cassandra 是一套开源分布式 NoSQL 数据库系统,起源于早期非常著名的两个 table:google 的 BigTable 和 Amazon 的 Dynamo。Cassandra 从 BigTable 里面吸取了 LSM 单机引擎的精华,又从 Amazon 07 年推出的 Dynamo Tabel 学习了怎么做分布式、管理集群和灾难容错等经验。

目前 Cassandra 已经被数千家企业所使用,其中不乏苹果、Netflix 以及 Spotify 等知名企业。本来 Cassandra 将会 7 月 19 日正式发布最新版本 4.0,但是在临近发布的关头,一位开发者发现了新版本存在 bug,因此 Cassandra 不得不紧急回炉重造。

Cassandra 4.0 是 Cassandra 六年以来的第一个大版本,就在发版之际,苹果公司工程师、Cassandra 贡献者 Jon Meredith 要求推迟新版本发布,并在申请中写道:“根据我的实际调查,4.0 版本实例在将 FWD_FRM 消息参数序列化为 4.0 版本之前的节点时可能存在问题,具体情况需要更多时间进一步确认。”

除此之外,还需要重新考虑转发消息时到底是使用相同的消息 id,还是同时包含原始消息 id 以及转发 id。因为现在如果转发至单一节点,则被转发的请求无法正确附带消息 id。在混合版本的集群当中,这个问题有可能导致 4.0 版本之前的节点发生故障。

出现问题之后,社区成员们通过投票最终决定,推迟新版本发布,Cassandra 4.0 将在问题得到解决后正式亮相。

要发布快还是要迭代稳定,这是个值得思考的问题。

显然,Cassandra 在这两者之间选择了迭代稳定。这次新版本发布,社区整整打磨了六年,目的就是为了提高项目质量。因此,在问题刚刚出现时,社区发言人就表示:“在筹备 4.0 GA 版本时,Apache Cassandra 社区发现一项 bug,预计将在周五晚些时候修复完成。因此,新版本将在修复工作结束后推出。我们在获悉最新发布时间后将尽快通知各位。”

当然,这也是有历史原因的,Cassandra 曾经出现过直到 x.6 版本才能实现生产集群应用的大麻烦。为了避免此类问题影响项目声誉,贡献者们决定设立新的标准,宁愿推迟发布也要保障产品质量。

参考链接:

https://www.theregister.com/2021/07/19/cassandra_40_delay/

点个在看少个 bug 👇