群集的每个节点上的总数据量是多少?

时间:2016-05-26 16:25:52

标签: cassandra datastax

lesson material数据存储区的上下文中,给出了这个问题:

  

在RF = 2的3节点群集中,每个群集的总数据量是多少   节点拥有?

如何进行此计算?

我想我想出了一种用数学方法表达这种方法的方法,但我认为我的数学技能最差,并且至少做出一个假设 - 我不确定如何口头表达:< / p>

我可以将其表达为一个比例:

节点/数据pct

以上示例如下所示:

1(节点)/ x(数据pct)= 3(节点总数)/ 100%(数据pct)

3x = 100%... x = 33.33%(复制因子**的倍数)= 66.66%

因此,每个节点包含2/3的数据。

** 这是我所知道的假设,我无法表达

我正在寻找一个健全性检查:这种方法是否有助于确定每个节点拥有的数据的pct,其中&#39;数据&#39;被定义为用户添加到cassandra的所有数据? (即不是opscenter)

如果是这样,这是否意味着在RF = 3的8节点集群上,每个节点包含37.5%的总数据?

我们的dev c *数据中心丢失了一半的服务器,似乎已经能够恢复所有数据。我不确定如何验证这一点,但如果每个节点确实有37.5%的数据,那么它解释了我们如何能够完全恢复:这意味着150%的数据仍然存在于假设在两个c * dc&s中复制已设置为RF = 3,则剩下四个节点。 (对于用户添加的数据,它是这样的。)

1 个答案:

答案 0 :(得分:0)

基本上是的,你的数学是正确的。我认为这是表达同样事情的一种简单方式,所以它是有道理的:

100%* RF =&#34;唯一数据的总量&#34;

所以(RF * 100%)/ num_nodes =每个节点上的数据量

对于您的示例,您计算的100%* 3/8 = 37.5%。

的确如果你总结剩余节点上拥有的数据百分比,如果它低于100%,你将丢失数据......但反过来肯定不是这样。您可以拥有剩余节点的所有权超过100%并且仍然缺少某些数据,例如如果所有剩余节点包含完全相同的副本。因此,我认为这是考虑您的弹性的好方法。

如果要将数据写入3个节点并且有2个节点关闭,则您知道仍有可用数据的副本。如果3个节点发生故障,则可能存在一些不可用的数据(如果它恰好是主节点和2个副本节点)。

相关问题