基于案例分析 MySQL Group Replication 的故障检测流程( 五 )

其中 , 

  • COUNT_ALLOC:缓存过的消息数量 。
  • COUNT_FREE:从缓存中删除的消息数量 。
  • CURRENT_COUNT_USED:当前正在缓存的消息数量,等于 COUNT_ALLOC - COUNT_FREE 。
  • SUM_NUMBER_OF_BYTES_ALLOC:分配的内存大小 。
  • SUM_NUMBER_OF_BYTES_FREE:被释放的内存大小 。
  • CURRENT_NUMBER_OF_BYTES_USED:当前正在使用的内存大小,等于 SUM_NUMBER_OF_BYTES_ALLOC - SUM_NUMBER_OF_BYTES_FREE 。
  • LOW_COUNT_USED , HIGH_COUNT_USED:CURRENT_COUNT_USED 的历史最小值和最大值 。
  • LOW_NUMBER_OF_BYTES_USED,HIGH_NUMBER_OF_BYTES_USED:CURRENT_NUMBER_OF_BYTES_USED 的历史最小值和最大值 。
如果断开连接之后,在反复执行大事务的过程中,发现 COUNT_FREE 发生了变化,同样意味着 node3 需要的消息已经从 XCom Cache 中驱逐了 。
7. 恢复 node3 与 node1、node2 之间的网络连接 。
在 group_replication_member_expel_timeout 期间,网络恢复了,而 node3 需要的消息在 XCom Cache 中不存在了,则 node3 同样会被驱逐出集群 。以下是这种场景下 node3 的错误日志 。
[ERROR] [MY-011735] [Repl] Plugin group_replication reported: '[GCS] Node 0 is unable to get message {4aec99ca 7562 0}, since the group is too far ahead. Node will now exit.'[ERROR] [MY-011505] [Repl] Plugin group_replication reported: 'Member was expelled from the group due to network failures, changing member status to ERROR.'[ERROR] [MY-011712] [Repl] Plugin group_replication reported: 'The server was automatically set into read only mode after an error was detected.'[System] [MY-011565] [Repl] Plugin group_replication reported: 'Setting super_read_only=ON.'[System] [MY-013373] [Repl] Plugin group_replication reported: 'Started auto-rejoin procedure attempt 1 of 3'注意事项如果集群中存在 UNREACHABLE 的节点,会有以下限制和不足:
  1. 不能调整集群的拓扑,包括添加和删除节点 。
  2. 在单主模式下,如果 Primary 节点出现故障了,无法选择新主 。
  3. 如果 Group Replication 的一致性级别等于 AFTER 或 BEFORE_AND_AFTER,则写操作会一直等待,直到 UNREACHABLE 节点 ONLINE 并应用该操作 。
  4. 集群吞吐量会下降 。如果是单主模式 , 可将 group_replication_paxos_single_leader (MySQL 8.0.27 引入的)设置为 ON 解决这个问题 。
所以,在线上 group_replication_member_expel_timeout 不宜设置过大 。
参考资料[1] Extending replication instrumentation: account for memory used in XCom
[2] MySQL Group Replication - Default response to network partitions has changed
[3] No Ping Will Tear Us Apart - Enabling member auto-rejoin in Group Replication

推荐阅读