【问题标题】:Raft replication under partition分区下的筏复制
【发布时间】:2017-06-02 01:55:07
【问题描述】:
  1. 7 个成员集群,其中一个是领导者。
  2. Leader 尝试复制日志(一些写入)
  3. 发生网络分区。分别有 3 名和 4 名成员。
  4. 领导者最终进入少数派分区
  5. Leader 只达到 2 个 Follower → 复制失败

在这种情况下会发生什么?

据我了解:2 个追随者应用了“错误”写入,当网络分区修复时,他们将用多数领导者的历史记录覆盖该写入。但这违反了线性化。

??????

【问题讨论】:

    标签: consensus raft


    【解决方案1】:

    您将复制与承诺混淆了。仅仅将一个条目复制到这个集群的少数并不会破坏线性化。重要的是何时将更改视为已提交。由于分区少数方的领导者无法将更改复制到集群的大多数人,因此它永远不会提交更改,也永远不会向客户端确认更改已被持久化。此外,未提交的更改将永远不会应用于任何节点上的状态机。因此,在分区修复时覆盖未提交的更改不会破坏任何保证。

    只有当领导者增加 commitIndex 并在仅复制到少数集群后确认写入时,保证才会被打破。

    【讨论】:

      猜你喜欢
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多