TL;DR:在重新散列/重新平衡期间如何处理故障节点中存在的 KEYS 的 READ/WRITE 请求?
假设在数据库的一致性哈希设置中,数据库中的一个节点发生了故障。现在,只有该特定节点上的密钥将在哈希环中的其余节点之间重新哈希/重新平衡。
我的问题是,在重新散列/重新平衡期间如何处理失败节点中存在的 KEYS 读/写请求?
一个简单的答案可能是 READ/WRITE 请求在重新平衡期间由故障节点的副本处理。但是考虑以下情况:
假设,我的复制因子(N)= 3,WRITE quorum(W)= 3 和 READ QUORUM(R)= 3
现在,如果一个节点发生故障,那么在重新平衡期间,我的复制因子将变为 2,即故障节点上只有两个数据副本。
现在,如果 READ 请求到来,由于我的 READ quorum 设置为 3,我的数据库将无法用于该请求,因为它无法找到 READ 请求对应的 3 个副本。
然而,据我所知,一致散列有助于设计 ALWAYS-ON 系统。
这是否意味着在重新平衡/重新散列期间,如果我想要高可用性,我的 R/W quorum 很可能无法满足?