将服务器添加到现有集群后出现大量 sstables

Huge number of sstables after adding server to existing cluster

我们正在 运行 测试 8 个节点的 cassandra 集群 运行 在单个 DC 中使用 Simple snitch 和 DateTieredCompactionStrategy 卡桑德拉版本 2.1.3 在将新节点(第 9 个)添加到集群后,我们看到新加入的服务器上的 sstables 数量大致等于集群中所有服务器上所有 sstables 的总和。并且这个数字是巨大的,新添加的服务器上有数万个sstables。

Q1:这是我们应该期待发生的事情吗?

而且新加入的服务器似乎没有超载,基本上没有pending/scheduled压缩,但是sstables的数量没有减少。

Q2:sstables数量没有减少的原因是什么?

Q3:我们需要做什么来减少每台服务器的 sstables 数量?

感谢您的帮助

由于 DTCS 的设计,这是已知的(意外但并非不足为奇)行为。如果 max_sstable_age_days 低于 ttl 截止值,每次都会发生这种情况。当您从集群中删除节点时也会发生这种情况。

如果我的演讲被接受,我计划在 2015 年 C* 峰会上讨论这个问题,并且我已经在 https://issues.apache.org/jira/browse/CASSANDRA-9666

中提出了 DTCS 的替代方法