在升级cassandra主版本时更改压缩策略

时间:2019-07-16 12:00:05

标签: cassandra upgrade datastax

我打算将cassandra版本从2.2升级到3.11。同时,我想将现有的表压缩策略从SizeTieredCompactionStrategy更改为TimeWindow。我想自动化这两个任务。在将cassandra版本从2.2x有效升级到3.11x的同时,如何更改压缩策略?

我正在将3节点apache cassandra集群作为docker容器运行,并保存具有45天TTL的时间序列数据。

考虑-

  1. 更改表的压缩策略将触发重写SSTables的所有节点的压缩。
  2. 由于cassandra 3.0中存储引擎的更改,使用“ upgradesstables”命令进行的重大升级将导致重写SSTables。

有什么方法可以避免一次又一次地重写SSTable来优化此过程。

这就是我的想法-

  1. 禁用压缩
  2. 更改表以更改压缩
  3. 将Cassandra升级到3.x
  4. 启用压缩

我希望upgradestables会尊重新的压缩方式,并避免写一次SSTable。

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

看起来,在上述情况下,我们可以避免一次压实并节省时间。以下步骤消除了对升级表的需求。

  • 升级到cassandra3.x。不要运行upgradestables。
  • 更改表以更改压缩。

在压缩更改结束时,所有sstables均以新格式写入,而无需使用upgradesstables命令。