tssl在cassandra创建墓碑

问题描述 投票:1回答:2

我只对cassandra进行插入。插入时,只插入非空值以避免使用墓碑。但是很少有记录插入TTL。但是从表中选择count(*)会产生以下错误 -

读取76个实时行和1324个逻辑删除单元格以进行查询SELECT * FROM xx.yy WHERE token(y)> = token(fc872571-1253-45a1-ada3-d6f5a96668e8)LIMIT 100(参见tombstone_warn_threshold)

TTL插入导致cassandra 3.7中的墓碑吗?如何减轻警告?

没有更新只进行插入,一些记录没有TTL,其他记录没有TTL

cassandra cassandra-3.0
2个回答
1
投票

从datastax文档:https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_c.html

在列创建超过TTL值后的秒数之后,TTL数据被视为已过期并包含在结果中。在读取路径上的下一次读取之后,过期数据用逻辑删除标记,但最多保留gc_grace_seconds。经过这段时间后,在正常的压缩和修复过程中会自动删除逻辑删除的数据。

这些条目将被视为墓碑,直到压实或修复。


4
投票

为TTL和压缩添加一个点。尽管如此,在gc_grace_seconds之后,压缩的默认设置只会启动,具体取决于tombstone_compaction_intervaltombstone_threshold

以前,由于具有大量记录的表的大量墓碑,我们已经读取超时问题。最终,我们需要减少tombstone_threshold以及启用unchecked_tombstone_compaction以更频繁地触发压缩过程。

您可以参考以下文档以获取更多详细信息

http://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlCreateTable.html?hl=unchecked_tombstone_compaction#tabProp__cqlTableGc_grace_seconds

© www.soinside.com 2019 - 2024. All rights reserved.