MySQL MGR数据一致性关键参数group_replication_consistency
Posted _雪辉_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL MGR数据一致性关键参数group_replication_consistency相关的知识,希望对你有一定的参考价值。
group_replication_consistency是mysql 8.0.14为解决MGR中一致性读提供的参数,可以在全局或单个事务中进行配置。分为以下5种可选值:
- EVENTUAL:
RO和RW事务执行前不会等待先序事务的回放完成,也不会影响后序事务等待该事务回放完成,只需要在超过半数节点冲突检测通过以后即可提交;RW事务不等待其他成员完成应用事务,意味着事务可以在其他成员完成之前外部化。这就可能在在主库发生故障转移的情况下,新主数据库可以在先前的主要事务完成全部应用之前就开始接受新的RO和RW事务。RO事务可能导致过时的数据,RW事务可能会因冲突而导致回滚。性能最好 - BEFORE:
RW事务在等待所有先序事务完成之后在开始应用。RO事务等待先序事务完成才执行。这样可保证此事务仅通过事务的延迟的影响就能读取到最新值。这种通过仅在RO事务上的同步保障,减少了每个RW事务上的同步开销。性能约下降10% - AFTER:
RW事务等待其它成员都应用完成其改变才开始执行。该数据对RO交易没有影响。在本地成员上提交事务时,任何后续事务都会读取任何组成员的写入值或更新值。将此模式与主要用于RO操作的组一起使用,以确保应用的RW事务在提交后可在其它节点随处同步应用。减少了每个RO事务上的同步开销,通过确保仅在RW事务上使用同步。性能极差 - BEFORE_AND_AFTER:
RW事务等待所有先序的事务在应用之前完成且直到其更改在其它成员上完成应用。RO事务在执行之前等待所有先前的事务完成。这可以保证此事务在最新的数据快照上执行,并且一旦事务完成,所有后续任何不管在哪个成员上执行的事务都会读取包含其更改的数据状态。性能极差 - BEFORE_ON_PRIMARY_FAILOVER:
在发生切换时,连到新主的事务会被阻塞,等待先序提交的事务回放完成;这样确保在故障切换时客户端都能读取到主服务器上的最新数据,保证了一致性,但是客户端可能出现延迟等待主库处理完成积压的事务。通常这种延迟应该是较小的,但取决于积压事务的量。与积压量成正比
以上是关于MySQL MGR数据一致性关键参数group_replication_consistency的主要内容,如果未能解决你的问题,请参考以下文章