我有一个类似队列的列系列,每隔一小时就会更新一次。几个小时或一天后,cassandra有很多读取时间。
我试过这个但是还没有得到结果:gc_grace_seconds = 0并使用LeveledCompaction。
或者你会推荐datetieredcompactionstrategy,还是有另外一个更好的策略呢?
如果我无法解决这个问题,我认为切换到另一个数据库你觉得有必要吗?
感谢您的回复。
答案 0 :(得分:1)
你所做的是anti-pattern并且有很多与之相关的问题,这一点很重要。
那就是说你真的想要控制你的墓碑,因为你越来越多地引起了很多GC问题并增加了读取延迟(必须从磁盘上读取大量数据才能读取空队列)。由于默认tombstone_compaction_interval
,您可能无法获得gc_grace设置为零的好处。
我建议您更新compaction strategy以提供帮助:
ALTER TABLE footable WITH
compaction = {'class': 'LeveledCompactionStrategy',
'sstable_size_in_mb': '256mb',
'tombstone_compaction_interval': '1',
'unchecked_tombstone_compaction': 'true',
'tombstone_threshold': '0.05'} AND
gc_grace_seconds = 0
请记住,更具攻击性的墓碑删除会使删除失败的可能性达到最高水平。真的,如果可能的话,你应该考虑更新你的应用程序以使用更合适的东西。