Bug #94213 group_replication_consistency=AFTER does not include BEFORE_ON_PRIMARY_FAILOVER
Submitted: 6 Feb 10:31 Modified: 26 Mar 17:54
Reporter: Nuno Carvalho Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Group Replication Severity:S3 (Non-critical)
Version:8.0.14 OS:Any
Assigned to: CPU Architecture:Any

[6 Feb 10:31] Nuno Carvalho
Description:
group-replication-consistency option controls the consistency of transactions on the group, there are 5 levels:
  EVENTUAL
  BEFORE_ON_PRIMARY_FAILOVER
  BEFORE
  AFTER
  BEFORE_AND_AFTER
All details at
https://dev.mysql.com/doc/refman/8.0/en/group-replication-options.html#sysvar_group_replic...

BEFORE, AFTER and BEFORE_AND_AFTER must include BEFORE_ON_PRIMARY_FAILOVER.

Though AFTER is not including BEFORE_ON_PRIMARY_FAILOVER which may cause outdated reads if the current transaction is executed on a a new primary still applying the old primary backlog.

How to repeat:
Please see attached x.test.

Suggested fix:
AFTER must include BEFORE_ON_PRIMARY_FAILOVER.
[26 Mar 17:54] Margaret Fisher
Posted by developer:
 
Changelog entry added for MySQL 8.0.16:

The consistency level AFTER for the system variable group_replication_consistency did not include the consistency guarantees provided by BEFORE_ON_PRIMARY_FAILOVER. These consistency guarantees, which were already implicitly present with the BEFORE and BEFORE_AND_AFTER consistency levels, are now provided with AFTER. 

Documentation changes made in
https://dev.mysql.com/doc/refmahttps://dev.mysql.com/doc/refman/8.0/en/group-replication-c...
https://dev.mysql.com/doc/refman/8.0/en/group-replication-configuring-consistency-guarante...