我们的生产中有Cassandra设置。有几个表,其中有大约20M的记录。为了减少记录数量,我们删除了不需要的记录,并且还设置了ttl以在一段时间后删除数据。我们现在将宽限期设置为1天。我们还在每个Cassandra节点上运行nodetool修复(一次一个)。我们在集群中共有5个节点,其中replication_factor为3. Cassandra版本为2.1.14
在Cassandra日志中,我经常看到以下错误:
WARN [SharedPool-Worker-33] 2017-02-23 06:09:02,617 SliceQueryFilter.java:320 - Read 207 live and 3059 tombstone cells in event for key: 101:10001Njh:22017 (see tombstone_warn_threshold). 5000 columns were requested, slices=[-]
我运行命令nodetool cfhistograms myekyspace event;以下是同一
的输出我无法完全分析上述输出,但我知道sstable计数太高了。
我们可以做些什么来解决这个问题或优化我们的Cassandra。
java堆大小设置为8 GB,我们正在使用CMS垃圾回收。
nodetool的输出cfstats mykeyspace.event
表格结构
@chris-lohfink - Updated the question with the cfstats details and
CREATE TABLE vcs.events (
v_id text,
c_id text,
e_month int,
sid text,
e_id timeuuid,
cr_p_id text,
e_bucket text,
e_media map<text, text>,
e_meta map<text, text>,
e_met map<text, double>,
tag set<text>,
etime timestamp,
etype text,
isfin boolean,
r_mode text,
state text,
PRIMARY KEY ((v_id, c_id, e_month), sid, e_id)
) WITH CLUSTERING ORDER BY (sid ASC, e_id ASC)
AND bloom_filter_fp_chance = 0.01
AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
AND comment = ''
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.1
AND default_time_to_live = 0
AND gc_grace_seconds = 86400
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair_chance = 0.0
AND speculative_retry = '99.0PERCENTILE';
CREATE INDEX events_id_idx ON mykeyspace.event (e_id);
CREATE INDEX events_type_idx ON mykeyspace.event (etype);
CREATE INDEX events_finalized_idx ON mykeyspace.event (isfin);
CREATE INDEX idx_state ON mykeyspace.event (state);
答案 0 :(得分:0)
当您在Cassandra中删除数据时,它不会立即删除,而是Cassandra会创建指示行/列被删除的逻辑删除。墓碑存储到gc_grace_seconds。
在您的情况下,您每天都会删除300K记录,这表示会创建更多的逻辑删除并影响您的表现。您应该处理数据模型以避免此错误。 请参阅34到42的幻灯片,了解http://www.slideshare.net/planetcassandra/8-axel-liljencrantz-23204252
中的删除和TTL另请参阅下面Cassandra文档中数据模型对墓碑的影响: http://www.datastax.com/dev/blog/cassandra-anti-patterns-queues-and-queue-like-datasets