【问题标题】:Cassandra lower vtokensCassandra 降低 vtokens
【发布时间】:2019-03-21 03:06:41
【问题描述】:

我们需要减少 Cassandra 集群(2 个节点)上的 vtoken,以补偿两台机器具有不同的存储能力。复制因子当前为 1,因此不会发生数据复制。

我们不能简单地将 vtoken 减少到 32 而不是当前的 256 并重新启动服务器吗?如果我们尝试这个会发生什么?它会流式传输额外的令牌还是会丢失数据?

我们阅读了关于停用节点以将所有数据复制到更大的节点,重新配置它以减少 vtoken,在本地删除 cassandra 数据并使其重新加入集群,只是想知道如果我们在停用之前尝试减少 vtoken 会发生什么?

谢谢!

【问题讨论】:

  • 您知道以 RF=1 运行有多危险吗? Cassandra 的要点是高可用性,在这种情况下您会失去高可用性,任何类型的故障都可能导致数据丢失,甚至只是杀死 -9。
  • 是的,我们知道这一点。但我们目前只有 2 台机器可用。

标签: cassandra cluster-computing cql


【解决方案1】:

您无法使用 vnode 进行平衡。凭借统计数据,即使有 32 个 vnode,您也应该在节点之间有相当均匀的数据分布。更少的 vnode 将为您提供更好的搜索性能。

还要留意 CASSANDRA-7032,这应该让我们在不牺牲数据分布的情况下达到更低的 num_tokens。

【讨论】:

  • 可以使用 vnode 进行平衡,我们有一个集群在一台机器上运行 32 个 vtoken,在另一台机器上运行 256 个 vtoken(15% - 85% 分布)。
猜你喜欢
  • 2019-01-28
  • 2022-08-06
  • 2021-10-09
  • 1970-01-01
  • 2019-04-27
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多