我正在浏览Cassandra文档并注意到这个属性。当然,我假设读取修复肯定会在向Cassandra发出读取请求时发生。为什么默认值设置为0.1而不是1?此外,将其设置为1会产生什么后果?
感谢。
答案 0 :(得分:1)
只要读取显示副本之间存在不一致,Cassandra就会执行读取修复。
如果您希望cassandra即使在完全一致的读取后也能执行读取修复,您可以使用dclocal_read_repair_chance
对其进行配置。
dclocal_read_repair_chance:
表的一致读取触发读取修复的概率。它仅限于与协调节点相同的数据中心。
Cassandra比较并协调所有副本,即使是那些在成功阅读中未访问的副本。
如果将dclocal_read_repair_chance
设置为1.那么一致读取的概率将触发读取修复为1.因此,每次执行读取请求时,cassandra都会触发读取修复,这是非常耗费资源的。
建议:如果表用于时间序列数据,则可以将其设置为0(零)。对于其他表,更高效的策略是将dc_local_read_repair_chance设置为0.1