【问题标题】:How much total data is on each node of a cluster?集群的每个节点上有多少总数据?
【发布时间】:2016-05-27 12:58:40
【问题描述】:

lesson material for datastax 的上下文中,给出这个问题:

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

如何计算?

我想我找到了一种数学表达方式,但我认为我的数学技能充其量是很差的,而且它至少做出了一个假设——我不确定如何口头表达:

我可以用比例来表示:

节点/数据百分比

上面的例子看起来像这样:

1 (node) / x (data pct) = 3 (nodes total) / 100% (data pct)

3x = 100% ... x = 33.33%(乘以复制因子**)= 66.66%

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

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

我正在寻找健全性检查:此方法是否可以确定每个节点拥有的数据的 pct,其中“数据”定义为用户添加到 cassandra 的所有数据? (即,不是 opscenter)

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

我们的两个 dev c* 数据中心的服务器损失了一半,并且似乎能够恢复所有数据。我不确定如何验证这一点,但如果每个节点确实有 37.5% 的数据,那么它解释了我们如何能够完全恢复:这意味着 150% 的数据保留在四个节点上剩下的,假设复制在两个 c* dc 中都设置为 RF=3。 (就是用户添加的数据。)

【问题讨论】:

    标签: cassandra datastax


    【解决方案1】:

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

    100% * RF = “唯一数据”的总量

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

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

    确实,如果您将剩余节点上拥有的数据的百分比相加,并且如果它小于 100%,那么您将丢失数据……但反过来肯定是不正确的。您可以拥有超过 100% 的剩余节点的所有权,但仍会丢失一些数据,例如如果所有剩余的节点都包含完全相同的副本。所以我认为这不是考虑你的弹性的好方法。

    如果您正在向 3 个节点写入数据并且有 2 个节点出现故障,则您知道仍然有可用的数据副本。如果有 3 个节点宕机,可能有一些数据不可用(如果它恰好是一个主节点和 2 个副本节点)。

    【讨论】:

      猜你喜欢
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      • 2013-04-03
      • 2019-09-28
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-24
      相关资源
      最近更新 更多