问题描述
我是 MysqL 集群的新手,最近我正在阅读有关 group_replication_consistency
参考:https://dev.mysql.com/doc/refman/8.0/en/group-replication-configuring-consistency-guarantees.html
所以这里有 5 个不同的选项:EVENTUAL
、BEFORE_ON_PRIMARY_FAIlovER
、BEFORE
、AFTER
、BEFORE_AFTER
。
我了解使用 BEFORE
或 AFTER
可以防止我们读取陈旧数据并实现强一致性。
以及何时使用取决于系统的读/写比率(考虑性能)。
但是在那种情况下,我们为什么需要BEFORE_AFTER
?我已经阅读了网站提到的场景,但仍然不明白为什么我们需要同时做:
- 只读操作:在读取之前,执行所有前面的事务
- 读写操作:RW 事务等待 1) 所有先前的事务完成后才被应用,2) 直到其更改已应用于其他成员。
有人能解释一下即使BEFORE
& AFTER
都不够用还是会导致读取过时数据的异常场景吗?
非常感谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)