我正在使用默认设置的 6 节点 Cassandra 集群上运行 YCSB。假设客户端已经与协调器建立连接,并找到足够的副本来满足其一致性级别,如果:
(1) 协调器宕机了?YCSB 客户会联系其他协调员吗?
(2) 部分副本宕机?它会重试还是简单地失败请求?
我正在使用默认设置的 6 节点 Cassandra 集群上运行 YCSB。假设客户端已经与协调器建立连接,并找到足够的副本来满足其一致性级别,如果:
(1) 协调器宕机了?YCSB 客户会联系其他协调员吗?
(2) 部分副本宕机?它会重试还是简单地失败请求?
请一次只问一个问题。在回答您的问题时:
如果被选为协调器的节点宕机,则另一个节点将被选为协调器。请注意,客户端应该连接TokenAwareLoadBalancingPolicy
(在 YCSB 中可以配置吗?),只要在查询中传递分区键(所有客户端查询都应该是正在做)。
这取决于客户端指定的一致性级别。如果客户端以QUORUM
一致性运行,并且您的密钥空间定义为复制因子 (RF) 为 3,那么您只需要能够命中两个副本。如果客户端以 的一致性运行ONE
,那么您只需要找到一个。因此,如果您的 RF 为 3,并且正在查询ONE
或LOCAL_ONE
两个节点可能已关闭,您仍然可以为请求提供服务。YCSB 应该真的有办法配置它。