【问题标题】:4 node setup in cassandra is as same as 3 node setupcassandra 中的 4 节点设置与 3 节点设置相同
【发布时间】:2018-05-08 04:41:07
【问题描述】:

我在 Cassandra 中有一个 4 节点设置,并决定使用以下配置,但有人说这将与 3 节点设置相同,所以有人可以给我一个提示并说明原因,

Nodes = 3, Replication Factor = 2, Write Consistency = 2, Read Consistency = 1
Nodes = 4, Replication Factor = 3, Write Consistency = 3, Read Consistency = 1

据我了解,Nodes = 4,提供两个节点故障,将 RF 设置为“3”是有益的,但人们说 RF = 2 将与 RF = 3 在 4 节点设置中相同,你能请解释为什么?

谢谢, 哈利

【问题讨论】:

  • 人是谁??你要改变比率,所以不,它们不一样。
  • 而且你会做出更多的改变……所以不,它们不一样!

标签: cassandra cassandra-2.0 high-availability cassandra-3.0 cassandra-2.1


【解决方案1】:

您的问题有点不清楚,因为我认为您没有正确构建问题。但我会尝试解释一些有助于您理解它的要点。

Nodes = 4,提供两个节点故障,RF为'3'是有好处的

  1. 节点数不是读/写失败的计数因素。 RF(复制因子)和 CL(一致性级别)是读/写失败的决定因素(如果需要的副本或节点已关闭)。

RF -> 将保留多少份数据(行)。 (有多少服务器或节点将保留相同的行/数据)。

CL -> 确认需要多少个节点才能让客户端知道/通知写/读操作成功。这意味着至少提到的节点数量为 CL(例如:如果 CL 为 2,则至少 2 个节点)必须确认/确保它们已成功写入数据或从这些副本中读取数据(等到所有必需的副本返回结果到协调器节点)并合并结果(如果不同节点对相同数据的更新不同,则保留最新数据)并成功将结果返回给客户端。

注意:如果 RF = CL,那么您使用的 CL 等同于 ALL。

ALL 是最高级别的一致性级别(数据肯定是最新的,但如果单个副本宕机则不可用)

场景 1:

Nodes = 3, Replication Factor = 2, Write Consistency = 2, Read Consistency = 1

对于写操作:

由于您使用了最高级别的写入CL(RF和写入CL值相同),那么这将是单点故障的情况。所有必需的副本都必须处于活动状态才能确认客户端数据已成功写入两个节点。

对于读操作:

读取 CL 为 ONE。因此,如果一个副本出现故障,它可以生存。因为只有一个副本需要将结果返回给客户端。可能是旧数据(如果更新的数据还没有传播到这个节点,但最终还是一致的),但是读取会成功。

场景 2:

Nodes = 3, Replication Factor = 3, Write Consistency = 2, Read Consistency = 1

对于写操作:

由于节点数 = RF,所有数据都将复制到所有节点(100% 拥有)。它将在一个节点/副本关闭时存活下来。

对于读操作: 如果两个副本都down了,它可以生存。

场景 3:

Nodes = 4, Replication Factor = 2, Write Consistency = 2, Read Consistency = 1

对于写操作:

与场景 1 相同。

对于读操作:

与场景 1 相同。

场景 4:

Nodes = 4, Replication Factor = 3, Write Consistency = 3, Read Consistency = 1

对于写操作:

与场景 1 相同。

对于读操作:

与场景 2 相同。

相关链接:

Understand cassandra replication factor versus consistency level

详情请关注DataStax Doc

已编辑

如果您担心节点故障情况(读取或写入请求失败),节点数量无关紧要。

假设你有 3/4/5 个节点,如果 RF 为 3,CL 为 QUORUM (3/2 + 1 ~ 2),集群可以容忍 1 个副本节点宕机。请阅读以上链接中的About the QUORUM level 部分。

如果您有更多节点,则集群可以处理更多数据或在节点之间正确加载和分配数据。但是请求故障转移场景将是相同的。

节点 = 3,复制因子 = 3,写入一致性 = 2,读取 一致性 = 1

节点 = 4,复制因子 = 3,写入一致性 = 2,读取 一致性 = 1

节点 = 5,复制因子 = 3,写入一致性 = 2,读取 一致性 = 1

由于 RF 为 3,Write 和 Read CL 分别为 2 和 1,集群可以容忍一个副本宕机进行写操作,两个副本宕机进行读操作。希望对您有所帮助。

【讨论】:

  • 这是我的评论:4个节点只有3个。通常,任何偶数节点数都只有少一个奇数节点数,CF的参数应该保持不变.所以在这种情况下,4 应该与 3 而不是 5 具有相同的配置。
  • 你说的CF是什么意思?你说的是CL吗? CF 代表 Column Family :)
猜你喜欢
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-08
相关资源
最近更新 更多