在Cassandra版本升级之前必须进行修复

时间:2017-07-01 09:42:46

标签: cassandra datastax datastax-enterprise cassandra-2.1 repair

我们的DSE生产版本是4.8.4(Cassandra 2.1.12)。我们运行3个节点集群,每个节点256个vnode,每个节点约200GB数据,RF = 3。我们将不断迁移到最新的DSE版本5.1.1(Cassandra 3.10.0)。

根据DataStax升级手册http://docs.datastax.com/en/upgrade/doc/upgrade/datastax_enterprise/upgdDSE50.html,应在开始升级之前进行修复。我们不使用增量修复并修复整个群集,我们在单个节点上运行完全顺序修复。运行12小时后,100/768令牌范围被修复,但cpu使用率非常高,其中一个表的sstables数量增加almost linearly.我们在正常运行期间也遇到了几个问题,其中一个是升级原因是用新的TWCS压缩策略替换现有的DTCS。

我们关注长修复持续时间和增加资源利用率。 所以我们想知道在升级之前是否100%需要维修?不做/做的后果是什么?如果我们要一致地升级几个版本,我们是否应该在每次升级后执行读取修复?

2 个答案:

答案 0 :(得分:0)

那么,你根本不做定期维修吗?强烈推荐。

关于升级之前的修复:据我所知,这只是一个预防措施,因为升级过程本身不会修改您的数据,直到最后升级sstables。

如果使用QUORUM一致性级别,则不应受到节点之间不一致的影响,最终将由“读取修复”修复。

所以我觉得它很安全,但我认为你应该问Datastax是否确定。

答案 1 :(得分:0)

在需要任何节点维护之前运行读取修复以防止数据丢失。如果维护节点专门拥有某些部分数据并且在维护期间完全损坏,那么这是可能的。