【发布时间】:2013-04-27 07:48:18
【问题描述】:
在大约 1 个月的时间里,我在 nodetool cfstats 输出中的 Cassandra 集群中看到以下 3 个节点的已用空间值(我的复制因子 = 3):
Pending Tasks: 0
Column Family: BinaryData
SSTable count: 8145
Space used (live): 787858513883
Space used (total): 1060488819870
对于其他节点,我看到了不错的值,例如:
Space used (live): 780599901299
Space used (total): 780599901299
您可以注意到 Live 和 Total 空间之间存在 25% 的差异 (~254Gb)。看来我在这 3 个节点上有很多垃圾,由于某种原因无法压缩。 我正在谈论的列族有一个 LeveledCompaction 策略,SSTable 大小配置为 100Mb:
create column family BinaryData with key_validation_class=UTF8Type
and compaction_strategy=LeveledCompactionStrategy
and compaction_strategy_options={sstable_size_in_mb: 100};
请注意,总价值在所有三个节点上保持一个月。我依靠 Cassandra 自动规范化数据。
我试图减少空间的内容(没有结果):
- nodetool 清理
- nodetool 修复-pr
- nodetool compact [KEYSPACE] BinaryData(什么都没有发生:LeveledCompaction 策略忽略主要压缩)
还有什么我应该尝试清理垃圾和可用空间的事情吗?
【问题讨论】:
-
您在这个月的时间段内是否进行了大量的删除操作?
-
我想是的,我没有一个精确的值,可能有 100Gb-1Tb 之间的数据被删除了。但是为什么我的集群中只有 3 个节点有这个问题?为什么集群中的其余节点有 Live == Total?我正在使用 Cassandra 1.1.9
标签: cassandra