我们使用的是带有OpsCenter 5.2.4的DSE 4.8.8。我们所有的OpsCenter.rollups*表都在不断增长,尤其是rollups60表:
Size of rollups60, 1 month
密匙空间OpsCenter使用org.apache.cassandra.locator.NetworkTopologyStrategy,DC1 1,DC2 1
表设置:
CREATE TABLE "OpsCenter".rollups60 (
key text,
"timestamp" varint,
value blob,
PRIMARY KEY (key, "timestamp")
) WITH COMPACT STORAGE
AND CLUSTERING ORDER BY ("timestamp" ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = '{"info": "OpsCenter management data.", "version": [5, 2, 1]}'
AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'}
AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
AND dclocal_read_repair_chance = 0.0
AND default_time_to_live = 0
AND gc_grace_seconds = 0
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.25
AND speculative_retry = 'NONE';这些条目在列key和timestamp上没有TTL,在列value上没有TTL 604618。
你知道怎么解决这个问题吗?我已经尝试了截断,如下所述:Datastax support
发布于 2016-07-29 21:56:51
您可以通过集群配置文件设置1分钟(汇总60表) ttl,例如:https://docs.datastax.com/en/opscenter/6.5/opsc/configure/opscChangingPerformanceDataExpiration_t.html
[cassandra_metrics]
1min_ttl = 43200
5min_ttl = 1209600
2hr_ttl = 0
24hr_ttl = 0这也可以在每个代理的address.yaml中进行设置。不过,在OpsCenter集群配置中更容易设置一次。
您可以对表设置进行一些调整,以改进对tombstones的清除。
ALTER TABLE "OpsCenter".rollups60 WITH
compaction = {'class': 'SizeTieredCompactionStrategy',
'tombstone_compaction_interval': '1',
'unchecked_tombstone_compaction': 'true',
'tombstone_threshold': '0.05'} AND
gc_grace_seconds = 0为了更具侵略性,您可以使用LCS,但这会增加IO使用率。不过,对于您的场景来说,这可能没问题,因为(至少使用上面的ttl选项)您实际上不会有那么多数据要存储。
ALTER TABLE "OpsCenter".rollups60 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 = 0https://stackoverflow.com/questions/38583028
复制相似问题