MYSQL 半同步的一些总结

1. 半同步复制,是在传统的异步复制的基础上建立起来的。在异步复制,速度快,高并发高性能,但是缺少数据一致性安全问题,才出现半同步复制。半同步复制解决了数据一致性安全问题。接下来我们说说它的原理
 
master 收到一个事务1,写入binlog, commit 提交,dump线程传送slave,写入中继relay logs ,返回给master ack ,再返回给客户端。commit 和dump 到salve是同步进行的,等待slave 应答才返回给客户端。这个时候,master commit提交之后,还没有收到slave ack。其它客户端能看到事务1.  如果这个时候做切换,事务1还没有写入slave relay ,导致了丢失这个事务,而其它客户端却能看到事务1.
 
使用增强版半同步,可以解决上面的问题, rpl_semi_sync_master_wait_point=AFTER_SYNC
只有master 收到ack,之后其它客户端才能看到提交的事务。避免幻读
 
生活就应该向往美好
原文地址:https://www.cnblogs.com/webnginx/p/11739555.html