Cassandra如何处理错误?当某些节点关闭时,它会重试还是失败?

时间:2016-12-15 21:40:17

标签: error-handling cassandra ycsb

我在具有默认设置的6节点Cassandra群集上运行YCSB。 假设客户端已与协调器建立连接,并找到足够的副本来满足其一致性级别,如果出现以下情况将会发生:

(1)协调员失败了吗? YCSB客户端是否会联系其他协调员?

(2)一些副本是否已关闭?它会重试还是完全失败?

1 个答案:

答案 0 :(得分:0)

请一次只提一个问题。回答你的问题:

  1. 如果选择作为协调器的节点关闭,则将选择另一个节点作为协调器。请注意,客户端应该与TokenAwareLoadBalancingPolicy连接(可以在YCSB中配置吗?),只要在查询中传递了一个分区键(即所有客户端),就无需指定协调器节点 - 边查询应该这样做。

  2. 这取决于客户端指定的一致性级别。如果客户端以QUORUM一致性运行,并且您的密钥空间定义为复制因子(RF)为3,那么您只需要能够访问两个副本。如果客户端以ONE的一致性运行,那么您只需要找到一个。因此,如果您的RF为3,并且正在ONELOCAL_ONE进行查询,则两个节点可能会关闭,您仍然可以处理请求。 YCSB应该有办法配置它。