低 TTL 和分级压缩,我应该减少 gc_grace_seconds 以提高读取性能吗?
设想:Cassandra 表缓存外部数据库值 - 读取性能需要良好(小于 100 毫秒)
TTL = 4 小时(行级)
每 6 小时功能性全表刷新(删除然后延迟加载)
如果我将 gc_grace_seconds 保留为默认值10 days,我可能有 60 行,每个活动行都有墓碑。这会影响读取性能。或不?
就是减少gc_grace_seconds 来说1 day一个足够安全的值以允许跨节点删除复制?鉴于即使某个节点因某些问题而超出层级,它也应该在不到一天的时间内恢复。这会提高读取性能吗?
我可能有 60 行,每个活动行都有墓碑。这会影响读取性能。或不?
是的,它肯定会影响你的阅读性能。当数据/逻辑删除比率为 1:60 时,您将要求 Cassandra 对每个好行进行 60 次删除。如果你有很多记录,它的性能可能会非常糟糕。
将 gc_grace_seconds 减少到 1 天是否是一个足够安全的值以允许跨节点删除复制?鉴于即使某个节点因某些问题而超出层级,它也应该在不到一天的时间内恢复。这会提高读取性能吗?
这应该会显着提高您的读取性能。但缺点是,如果您有一个节点从集群中退出,那么在它不知道删除之前,您只有 1 天的时间将其恢复。但即使你错过了它,你应该能够通过运行一个命令让你的节点恢复到一致的状态nodetool repair
。否则您将面临以下可能的风险删除的数据又出现 http://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dml_about_deletes_c.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)