Cassandra:在多个节点关闭的情况下提示切换

Cassandra: hinted handoff in case of multiple nodes down

Cassandra 使用提示切换的概念来保​​持一致性。 这意味着如果一个节点挂了,协调器会注意到它并等到它起来,然后重新向它发送写请求。

这是否意味着即使在等待不可用节点启动时,Cassandra 也会将成功响应发送回客户端?如果是,那么如果所有目标节点都已关闭怎么办?不写一次就成功响应客户端了吗?

如果无法实现一致性,则不会存储提示

例如,假设您有 3 个副本,并且所有节点都已关闭。在这种情况下,如果写入一致性为 quorum,则不会存储提示并且写入会失败。只有当一个节点关闭并且协调器从两个节点获得成功响应时才会存储提示。

唯一的例外是写入一致性 ANY。在这种情况下,即使所有副本都已关闭,也会存储提示并写入成功。