我计划将Cassandra版本从2.2升级到3.11。同时,我想将现有的表压缩策略从SizeTieredCompactionStrategy更改为TimeWindow。我想自动执行这两项任务。如何在将 Cassandra 版本从 2.2x 有效地升级到 3.11x 的同时更改压缩策略?
我正在运行 3 节点 apache cassandra 集群作为 docker 容器,其中包含 45 天 TTL 的时间序列数据。
考虑-
- 更改表的压缩策略将触发重写 SSTable 的所有节点的压缩。
- 使用 "upgradesstables" 命令进行重大升级将导致由于 cassandra 3.0 中的存储引擎更改而重写 SSTables
有没有办法通过避免一次又一次地重写 SSTable 来优化此过程。
这就是我在想的——
- 禁用压缩 更改
- 表格以更改压缩
- 将 Cassandra 升级到 3.x
- 启用压缩
我希望升级表将尊重新的压缩并避免一次 SSTable 写入。
这是一种正确的方法吗?
看起来,在上述情况下,我们可以避免一次压缩并节省时间。以下步骤消除了对升级表的需求。
- 升级到 Cassandra 3.x。不要运行升级表。 更改
- 表以更改压缩。
在压缩更改结束时,所有 sstables 都以新格式编写,无需升级 sstables 命令。