我计划将cassandra版本从2.2升级到3.11。同时,我想将现有的表压缩策略从sizetieredcompactionstrategy更改为timewindow。我想自动化这两个任务。如何在有效地将cassandra版本从2.2x升级到3.11x的同时改变压缩策略?
我正在运行3节点ApacheCassandra集群作为docker容器,其中包含45天ttl的timeseries数据。
对价-
改变表的压缩策略将触发重写sstables的所有节点的压缩。
由于cassandra3.0中存储引擎的改变,使用“upgradessstables”命令的主要升级将导致重写sstables
有没有办法通过避免一次又一次地重写sstables来优化这个过程。
我是这么想的-
禁用压缩
改变表以改变压实度
将cassandra升级到3.x
启用压缩
我希望upgradesstables将尊重新的压缩,并避免一次sstable写入。
这是正确的方法吗?
1条答案
按热度按时间cgh8pdjw1#
看起来,在上述情况下,我们可以避免一次压实,节省时间。以下步骤消除了升级表的需要。
升级至cassandra3.x。不要运行升级表。
改变表以改变压实度。
压缩更改结束时,所有sstables都将以新格式写入,无需upgradessstables命令。