技术分享 | 为什么MGR一致性模式不推荐AFTER

1、引子

某次测试过程中,发现在 AFTER 级别下,节点故障会导致集群无法进行事务提交,同时,当事务进入提交阶段后,其它节点无法开启只读事务。整个集群无法正常提供服务,直到故障节点被踢出集群。

以下首先复现上述故障场景的步骤:

1、初始化一个3节点的集群。集群信息如下:

    mysql> select * from performance_schema.replication_group_members;         +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+         | CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION |         +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+         | group_replication_applier | c223cde5-0719-11ec-8295-ec5c6826bca3 | 127.0.0.1   |       13000 | ONLINE       | PRIMARY     | 8.0.25         |         | group_replication_applier | c22847e0-0719-11ec-b30b-ec5c6826bca3 | 127.0.0.1   |       13004 | ONLINE       | PRIMARY     | 8.0.25         |         | group_replication_applier | c22c3752-0719-11ec-98ef-ec5c6826bca3 | 127.0.0.1   |       13002 | ONLINE       | PRIMARY     | 8.0.25         |         +---------------------------+--------------------------------------+-------------+-------------+--------------+-------------+----------------+         3 rows in set (0.00 sec)              mysql> select @@group_replication_member_expel_timeout;         +------------------------------------------+         | @@group_replication_member_expel_timeout |         +------------------------------------------+         |                                     1000 |         +------------------------------------------+         1 row in set (0.00 sec)