无法使用(STCS)SizeTieredCompactionStrategy 摆脱 cassandra 2.1.8 中的墓碑
Can not get rid of tombstones in cassandra 2.1.8 using (STCS) SizeTieredCompactionStrategy
我有一个 3 节点的 cassandra (2.1.8) 集群,我在上面使用 titan db (v0.5.4) 运行ning 应用程序。数据量非常小(<20 MB),但由于我的用例需要不时删除,我已经遇到了墓碑问题。
我无法摆脱已经创建的墓碑。
我尝试过的解决方案是:
- 将指定图形索引 table 的 gc_grace 降低到 60s
- 运行 nodetool flush
- 运行 节点工具修复
- for titan.graphindex table 将压缩选项设置为 {'class': 'SizeTieredCompactionStrategy', 'unchecked_tombstone_compaction': 'true', 'tombstone_compaction_interval' : '0', 'tombstone_threshold': '0.1'};
- 运行来自 jmx 的 ning forceUserDefinedCompaction。
因此,统计数据有所降低,但每个切片的平均墓碑数和每个切片的最大墓碑数仍然不令人满意:
Table: graphindex
**SSTable count: 1**
Space used (live): 661873
Space used (total): 661873
Space used by snapshots (total): 0
Off heap memory used (total): 6544
SSTable Compression Ratio: 0.6139286819777781
Number of keys (estimate): 4082
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 15
Local read count: 25983
Local read latency: 0.931 ms
Local write count: 23610
Local write latency: 0.057 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 5208
Bloom filter off heap memory used: 5200
Index summary off heap memory used: 1248
Compression metadata off heap memory used: 96
Compacted partition minimum bytes: 43
Compacted partition maximum bytes: 152321
Compacted partition mean bytes: 203
Average live cells per slice (last five minutes): 728.4188892737559
Maximum live cells per slice (last five minutes): 4025.0
**Average tombstones per slice (last five minutes): 317.34938228841935**
**Maximum tombstones per slice (last five minutes): 8031.0**
是否有删除所有墓碑的选项?提前感谢您的任何建议。
问题已解决。
事实证明,有关统计信息的信息非常具有误导性,因为 'Average tombstones per slice (last five minutes)' 和 'Maximum tombstones per slice (last five minutes)' 并且可能在最后 5 分钟内未计算活细胞统计信息,因为它是由 nodetool cfstats 编写的。但是它们是从节点启动开始计算的。我的节点 运行 有几个月了,所以即使清除了墓碑,我也看不出有什么大的不同,因为统计值已经很高的天数已经很大了。在我重新启动节点后,统计数据清除了,我可以看到压缩生效了。
很遗憾,我很难找到有关统计描述中此错误的信息(https://issues.apache.org/jira/browse/CASSANDRA-7731)
希望这可以帮助人们更快地获得这些信息。
我有一个 3 节点的 cassandra (2.1.8) 集群,我在上面使用 titan db (v0.5.4) 运行ning 应用程序。数据量非常小(<20 MB),但由于我的用例需要不时删除,我已经遇到了墓碑问题。 我无法摆脱已经创建的墓碑。 我尝试过的解决方案是:
- 将指定图形索引 table 的 gc_grace 降低到 60s
- 运行 nodetool flush
- 运行 节点工具修复
- for titan.graphindex table 将压缩选项设置为 {'class': 'SizeTieredCompactionStrategy', 'unchecked_tombstone_compaction': 'true', 'tombstone_compaction_interval' : '0', 'tombstone_threshold': '0.1'};
- 运行来自 jmx 的 ning forceUserDefinedCompaction。
因此,统计数据有所降低,但每个切片的平均墓碑数和每个切片的最大墓碑数仍然不令人满意:
Table: graphindex
**SSTable count: 1**
Space used (live): 661873
Space used (total): 661873
Space used by snapshots (total): 0
Off heap memory used (total): 6544
SSTable Compression Ratio: 0.6139286819777781
Number of keys (estimate): 4082
Memtable cell count: 0
Memtable data size: 0
Memtable off heap memory used: 0
Memtable switch count: 15
Local read count: 25983
Local read latency: 0.931 ms
Local write count: 23610
Local write latency: 0.057 ms
Pending flushes: 0
Bloom filter false positives: 0
Bloom filter false ratio: 0.00000
Bloom filter space used: 5208
Bloom filter off heap memory used: 5200
Index summary off heap memory used: 1248
Compression metadata off heap memory used: 96
Compacted partition minimum bytes: 43
Compacted partition maximum bytes: 152321
Compacted partition mean bytes: 203
Average live cells per slice (last five minutes): 728.4188892737559
Maximum live cells per slice (last five minutes): 4025.0
**Average tombstones per slice (last five minutes): 317.34938228841935**
**Maximum tombstones per slice (last five minutes): 8031.0**
是否有删除所有墓碑的选项?提前感谢您的任何建议。
问题已解决。
事实证明,有关统计信息的信息非常具有误导性,因为 'Average tombstones per slice (last five minutes)' 和 'Maximum tombstones per slice (last five minutes)' 并且可能在最后 5 分钟内未计算活细胞统计信息,因为它是由 nodetool cfstats 编写的。但是它们是从节点启动开始计算的。我的节点 运行 有几个月了,所以即使清除了墓碑,我也看不出有什么大的不同,因为统计值已经很高的天数已经很大了。在我重新启动节点后,统计数据清除了,我可以看到压缩生效了。
很遗憾,我很难找到有关统计描述中此错误的信息(https://issues.apache.org/jira/browse/CASSANDRA-7731)
希望这可以帮助人们更快地获得这些信息。