【发布时间】:2019-04-30 23:03:49
【问题描述】:
我有一个 48 节点 C* 集群 (3.11.4),分布在 4 个 AWS 区域,RF=3。几个月前,我开始注意到一些节点上的磁盘使用量持续增加。起初我通过销毁节点并重建它们来解决问题,但问题又回来了。
我最近做了一些调查,这就是我发现的:
- 通过简单地查看磁盘空间使用情况,我将问题缩小到使用 TWCS 的 CF(并且所有写入的行都有一个 ttl)
- 在每个区域中,有 3 个节点存在磁盘空间增长的问题(匹配复制因子)
- 在每个节点上,我使用sstableexpiredblockers 将问题追踪到特定的 SSTable。这个 SSTable 正在阻止所有其他 SSTable 被清理
- 在 SSTable 中,使用 sstabledump,我发现一行没有 ttl 像其他行一样,并且似乎来自团队中的其他人测试某些东西并忘记包含 ttl
- 除了这一行,所有其他行都显示“过期:真”,因此我怀疑
- 当我查询该特定分区键时,我没有得到任何结果
- 无论如何我都尝试删除该行,但这似乎并没有改变任何东西
- 我也试过nodetool scrub,但也没有用
这个没有 ttl 的流氓行能解释问题吗?如果是这样,为什么?如果没有,是否有人有其他想法?为什么行在sstabledump 中显示,但在我查询时却没有?
感谢任何帮助或建议!
【问题讨论】:
标签: cassandra