Cassandra:一个环中有 10 个节点,复制因子为 3,如果 3 个节点关闭,获得仲裁(2 个节点)的概率是多少



或者一般:

假设我们有一个由 n 个节点组成的集群,并且每条数据都复制到 k 个节点上。我们的法定人数计算为 (k+1)/2。我们的数据是均匀分布的。

假设 m 个节点向下弯曲。那么,无法获得仲裁(请求命中 (k+1)/2 个节点关闭)的概率是多少,所有请求中有多少百分比将面临此问题?

下面是 5 个节点和复制因子为 3 的示例:

对于 5 个节点和复制因子 3,我们将有 10 个可能的组,每组 3 台服务器:
A B C D E

组:
阿 b c
阿 b d
a b e
阿 中 D
a d e
阿 中 E
a d e
b c d
B C E
中德·

1) a 关闭,因此 7 个组受到影响,但我们需要 2 的仲裁,以便集群仍然启动并提供数据。

2) A 和 B 向下。9 个组受到影响,但只有 b c、b d、b e 丢失了 2 台服务器,无法提供数据。因此,30% 的集群已关闭。

3) A、B 和 C 下降。所有组都受到影响,但只有 b c、b d、b e、c d、c e、b c d、b c e 丢失了 2 或 3 个节点。因此,70% 的集群已关闭。

4) A, B, C, D - 100% 下降。

谢谢!

取决于哪些节点已关闭以及密钥在节点之间的分布方式。 最好的情况是,100%的数据是可访问的,最坏的情况是70%。

最新更新