Cassandra中的摘要请求

时间:2018-01-03 06:28:27

标签: apache cassandra cassandra-3.0

我对摘要请求的问题很少,我仔细阅读了文档,以下信息并不重要,

1)假设我有10个节点集群,RF = 3且RC = 2,

同样为了理解,让副本为节点1,节点2和节点3以及协调器为节点4.

对于读取请求,根据我的理解,第一个协调器(节点4)将直接请求发送到具有较低延迟的节点之一(动态小报)称节点1并获取数据,然后在接收到数据后发送对下一个等待时间节点之一的摘要请求说节点2并且仅获取散列并与从直接请求计算的散列进行比较。

问题1 :在收到直接请求后,摘要请求是否使用直接请求(或)发送parallelley(到节点2)它发送摘要请求?

问题2:我知道节点3的摘要请求也将被发送以保证数据一致性,但协调器(节点4)何时将摘要请求发送到第三个副本(节点3) ?是协调员回应客户后?

问题3:此外,只有在完成读取修复后,才会在doc中提及协调器将回复客户端?

问题4:除了跟踪,有人可以解释实时识别读写请求流的方法吗?

这将是伟大的,如果你们可以用工作流解释这些问题,它将对每个人都有用。

我也会通过视频阅读以供参考:https://www.youtube.com/watch?v=HuDJBTPdaOA&list=PLm-EPIkBI3YorKfmT9LXpBhyeZMYAM1M7

谢谢,
哈利

2 个答案:

答案 0 :(得分:3)

我假设你的情况。这里N4是协调节点。您向N2发送了直接请求(这是一个副本)。在从N2接收到响应之后,协调器节点(N4)将向包含其他副本的任何节点(N3或N1)发送摘要请求。假设N3更接近节点。因此,摘要请求将被发送到N3以满足一致性级别。在收到N3的响应后,N4将比较N2和N3的数据并将更新的数据返回给客户端。

N1节点中有另一个副本。现在,协调器节点向所有其他副本发送摘要请求。(在这种情况下为N1)。如果N4找到,则任何节点(N1,N2,N3)都不会更新,它会运行读取修复请求。

p.s:我不知道回答4.

https://docs.datastax.com/en/cassandra/2.1/cassandra/dml/architectureClientRequestsRead_c.html

https://teddyma.gitbooks.io/learncassandra/content/client/read_requests.html

答案 1 :(得分:0)

对于第4个问题,您可以启用cass_log_set_level并将日志级别设置为调试信息,您可以获得实时调试信息。