在我们的集群中,我们有一个列族,它的键是静态的,它的列有很多插入和删除,就像一个反向索引。随着时间的推移,具有许多列的键的读取延迟增加,现在,它被超时打破了。
我们使用 ColumnSliceIterator,默认计数为 100 个,从 Min 到 Max 字符切片。仅在 pagination 小于 5 时有效。
我们认为 tumbstones 列可能会导致问题,因此,我们减少了 gc_grace_seconds 并执行了许多修复,但没有任何变化。
有什么想法吗?
最佳答案
是的,墓碑绝对会导致这种情况。
您在减少 gcg 方面走在正确的轨道上,但扔掉墓碑的关键是压缩。您应该考虑切换到 Leveled Compaction,它更积极地将行合并在一起:http://www.datastax.com/dev/blog/when-to-use-leveled-compaction
顺便说一句,我们在 Cassandra 1.2 中添加了请求跟踪,以便更容易诊断此类问题:http://www.datastax.com/dev/blog/tracing-in-cassandra-1-2
关于java - 列删除会增加 Cassandra 中的读取延迟吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13501741/