使用 AFTER 模式进行 mysql 组复制时的数据不一致

Data inconsistency in mysql group replication with AFTER mode

提问人:uzumas 提问时间:11/15/2023 更新时间:11/15/2023 访问量:9

问:

我有 3 个节点 MySQL 组复制集群,具有 AFTER 一致性。

当节点突然关闭或与群集断开连接时,主节点上正在进行的事务会因证书失败而回滚。但是,事务应用于辅助节点。在辅助节点上没有执行任何写入操作。

这将导致数据不一致问题,其中连接到主节点的客户端将看到连接从主节点终止(如果主节点关闭),但数据实际上将存在于集群中,因为辅助节点已应用事务。我使用在旧主gtid_executed和新主服务器上设置的验证了这一点。

如何重复:

  1. 设置 3 个节点组复制群集
  2. 在所有节点上设置 group_replication_consistency=AFTER
  3. 在主节点上杀死 MySQL 进程
  4. 检查旧主gtid_executed和新主主

有没有人遇到过这个问题或了解这种行为?GR 不是使用 paxos 来建立共识并确保集群中的数据一致性吗?AFTER 模式应该确保所有节点上的数据相同。在这里,txn 似乎将在从其他节点获得 ack 后提交到 master 上。当其他节点发送 ack 时,主节点断开连接,txn 在主节点上回滚。

事务 mysql-group-replication

评论


答: 暂无答案