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



我计划将Cassandra版本从2.2升级到3.11。同时,我想将现有的表压缩策略从SizeTieredCompactionStrategy更改为TimeWindow。我想自动执行这两项任务。如何在将 Cassandra 版本从 2.2x 有效地升级到 3.11x 的同时更改压缩策略?

我正在运行 3 节点 apache cassandra 集群作为 docker 容器,其中包含 45 天 TTL 的时间序列数据。

考虑-

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

有没有办法通过避免一次又一次地重写 SSTable 来优化此过程。

这就是我在想的——

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

我希望升级表将尊重新的压缩并避免一次 SSTable 写入。

这是一种正确的方法吗?

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

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

在压缩更改结束时,所有 sstables 都以新格式编写,无需升级 sstables 命令。

最新更新