Cassandra阅读,阅读修复

时间:2017-11-28 17:03:05

标签: cassandra

场景:具有复制因子7和读取一致性级别仲裁的单个数据中心。

在读取请求期间,最快的副本获取数据请求。但有多少剩余的副本发送摘要。

Q1:是否所有剩余(留下最快的副本)副本都将摘要发送给协调员。最快的3将被视为满足一致性。或者只选择3((7/2 + 1) - 1(最快)= 3)复制品来发送摘要。

Q2:在这两种情况下,读取修复是如何工作的。读取修复运行后,将有多少节点和哪些节点同步。

1 个答案:

答案 0 :(得分:1)

这是从这篇优秀的博客文章中获取的,您应该完整阅读:https://academy.datastax.com/support-blog/read-repair

大致有两种类型的读取修复:前景和背景。前景在这里意味着阻止 - 我们在返回客户端之前完成所有操作。后台意味着非阻塞 - 我们开始后台修复操作,然后在完成之前返回到客户端。

在您的情况下,您将进行前台读取修复,因为它是在使用大于ONE / LOCAL_ONE的一致性级别的查询上执行的。协调器向一个副本请求数据,其他副本请求其数据摘要(当前为MD5)。如果从副本返回协调器的数据不匹配,Cassandra会通过从所有副本读取数据然后合并结果来解决问题。

这是确保您不断进行反熵修复运行和完成的重要原因之一。这样,读取消化不匹配的可能性就会降低。