我只对cassandra进行插入。插入时,只插入非空值以避免使用墓碑。但是很少有记录插入TTL。但是从表中选择count(*)会产生以下错误 -
读取76个实时行和1324个逻辑删除单元格以查询SELECT * FROM xx.yy WHERE标记(y)> = 令牌(fc872571-1253-45a1-ada3-d6f5a96668e8)限制100(见 tombstone_warn_threshold)
TTL插入导致cassandra 3.7中的墓碑吗?如何减轻警告?
没有更新只进行插入,有些记录没有TTL,有些记录有TTL
答案 0 :(得分:4)
为TTL和压缩添加一个点。即使在gc_grace_seconds
之后,压缩的默认设置也会启动,具体取决于tombstone_compaction_interval
和tombstone_threshold
之前,由于具有大量记录的表格的大量墓碑,我们读取了超时问题。最后,我们需要减少tombstone_threshold
以及启用unchecked_tombstone_compaction
以更频繁地触发压缩过程。
您可以参考以下文档了解更多详情
答案 1 :(得分:1)
来自datastax文档:https://docs.datastax.com/en/cql/3.1/cql/cql_using/use_expire_c.html
自列创建超过TTL值后的秒数,TTL数据被视为已过期并包含在结果中。在读取路径上的下一次读取之后,过期数据用逻辑删除标记,但最多保留gc_grace_seconds。经过这段时间后,在正常的压缩和修复过程中会自动删除逻辑删除的数据。
这些条目将被视为墓碑,直到压缩或修复。