我有几个卡桑德拉表,墓碑压缩不断运行,我相信这是卡桑德拉进程高CPU使用率背后的原因。
我拥有的设置包括:
compaction = {'tombstone_threshold': '0.01',
'tombstone_compaction_interval': '1', 'class':
'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}
default_time_to_live = 1728000
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0在其中一张表中,我每分钟都会向它写入数据。由于设置了TTL,所以一整组行也每分钟过期一次。
发布于 2016-10-01 16:37:28
因此,如果SSTable至少与压实间隔时间一样长,那么墓碑压实就可以触发。SStables是以压缩的方式创建的。门槛值是指在压实墓碑之前,有多少是墓碑,而不是加入马厩。
您正在使用水平,并有一个20天,它看起来像。你将做大量的压实,以及墓碑压实只是为了跟上。水平将是最好的,以确保您没有老墓碑消耗磁盘空间的默认压路机。
如果这些数据是时间序列(听起来是这样的),那么您可能需要考虑使用TWCS。这将创建“桶”,每个桶一旦压缩,就会成为一个sstable,因此,一旦表中的数据的ttl过期,密码器就可以删除整个sstable,这样效率要高得多。
TWCS可以作为jar使用,您需要将其添加到2.1类路径中,我们目前正在生产中使用它。它也被添加在3.x系列卡桑德拉中。
https://stackoverflow.com/questions/39796682
复制相似问题