Cassandra 如何使用 CL ONE 进行阅读?
协调器是否查询所有副本并等待第一个回答?
根据文档,协调器应该查询一个最近的副本。如果在此查询期间发生超时会发生什么 - 它是尝试另一个副本,还是向客户端返回错误?
Cassandra 如何使用 CL ONE 进行阅读?
协调器是否查询所有副本并等待第一个回答?
根据文档,协调器应该查询一个最近的副本。如果在此查询期间发生超时会发生什么 - 它是尝试另一个副本,还是向客户端返回错误?
协调器是否查询所有副本并等待第一个回答?
正如您所提到的,它查询最近的节点,由 snitch 确定。
如果在此查询期间发生超时会发生什么
Dynamic Snitch还有其他文档,其中指出:
默认情况下,所有告密者还使用动态告密层来监控读取延迟,并在可能的情况下将请求路由到性能不佳的节点。
根据该定义,如果 snitch 选择的节点失败,则 snitch 应将事务路由到 [next] 最近的节点。
请注意,从 2.0.2 开始,Cassandra 有一个名为Rapid Read Protection的功能,它:
[A] 允许 Cassandra 在不丢弃单个请求的情况下容忍节点故障