Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling 卡桑德拉如何处理错误?当某些节点关闭时,它会重试请求还是请求失败?_Error Handling_Cassandra_Ycsb - Fatal编程技术网

Error handling 卡桑德拉如何处理错误?当某些节点关闭时,它会重试请求还是请求失败?

Error handling 卡桑德拉如何处理错误?当某些节点关闭时,它会重试请求还是请求失败?,error-handling,cassandra,ycsb,Error Handling,Cassandra,Ycsb,我在6节点Cassandra集群上运行YCSB,使用默认设置。 假设客户端已与协调器建立了连接,并找到了足够的副本以满足其一致性级别,如果: (1) 协调员倒下了?YCSB客户是否会联系其他协调员 (2) 有些复制品坏了?它会重试还是只是请求失败?请一次只问一个问题。回答你的问题: 如果选择作为协调器的节点已关闭,则将选择另一个节点作为协调器。注意,客户机应该使用TokenawarReloadBalancingPolicy(在YCSB中可配置吗?)进行连接,只要在查询中传递了分区键(所有客户端查

我在6节点Cassandra集群上运行YCSB,使用默认设置。 假设客户端已与协调器建立了连接,并找到了足够的副本以满足其一致性级别,如果:

(1) 协调员倒下了?YCSB客户是否会联系其他协调员


(2) 有些复制品坏了?它会重试还是只是请求失败?

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

  • 如果选择作为协调器的节点已关闭,则将选择另一个节点作为协调器。注意,客户机应该使用
    TokenawarReloadBalancingPolicy
    (在YCSB中可配置吗?)进行连接,只要在查询中传递了分区键(所有客户端查询都应该这样做),就不需要指定协调器节点

  • 这取决于客户端指定的一致性级别。如果客户端以
    QUORUM
    一致性运行,并且您的密钥空间定义为复制因子(RF)为3,那么您只需要能够命中两个副本。如果客户端的一致性为
    ONE
    ,那么您只需要找到一个。因此,如果您的RF为3,并且在
    ONE
    LOCAL\u ONE
    查询,则两个节点可能已关闭,您仍然可以为请求提供服务。YCSB应该真的有办法配置它


  • 谢谢你的评论!关于第二个问题,我使用的一致性级别为1。当所选副本不可用时,cassandra会失败还是重试请求?(假设选择的副本在响应之前失败。)@roymaztang如果无法满足一致性要求(例如,如果请求的数据的所有3个副本都不可用),Cassandra将使请求失败。因此,如果可用副本不足以满足一致性级别,Cassandra将失败。如果所选副本在响应之前变得不可用,而其余可用副本仍足以满足要求,Cassandra会重试直到超时吗?@roymaztang您可以在客户端指定重试配置。但是,如果剩余的可用复制副本能够满足请求,它将成功。