zoukankan      html  css  js  c++  java
  • Mysql5.7 半同步改进

    Mysql5.6半同步策略

    Mysql 5.6在半同步的时候,采用的是After Commit策略。即在主库上commit了之后,等待从库返回确认。

    在这里,首先会出现幻读的问题,即当前连接的事务读取不到这条记录,而其他连接因为主库已经提交了事务,所以能读取到这条记录。

    其次,如果在主库等待从库确认的过程中,主库宕机。此时有两种情况:

    1. 事务还没有提交到从库。此时客户端会得到失败的结果。此时如果从库切换为主库,主库恢复变为从库,客户端提交数据到原来的从库,就会发现原来的主库上数据被重复提交。

    2. 事务已经提交到从库。此时主库向客户端返回提交失败,而从库已经提交了事务。再次提交的时候,从库便会多出一个事务。

    Mysql5.7上半同步的改进

    Mysql5.7上,主从的同步等待由主库提交之后等待改为了主库提交之前等待,即 Before Commit。这样就保证了从库在提交了事务之后,主库才会提交事务并返回。从一定程度上解决了主从不一致的问题。

    并且,在Mysql5.7上提供了rpl semi sync master wait_point配置,来决定半同步在什么地方等待从库返回。

    rpl_semi_sync_master_wait_point

    AFTER

    SYNC

    新的半同步方案,Waiting Slave dump在Storage Commit之前。

    COMMIT

    老的半同步方案,Waiting Slave dump在Storage Commit之后。

  • 相关阅读:
    ArrayList用法
    MessageBox
    将文本文件导入Sql数据库
    在桌面和菜单中添加快捷方式
    泡沫排序
    Making use of localized variables in javascript.
    Remove double empty lines in Visual Studio 2012
    Using Operations Manager Connectors
    Clear SharePoint Designer cache
    Programmatically set navigation settings in SharePoint 2013
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/7199589.html
Copyright © 2011-2022 走看看