同步后,主机等待从机确认事务接收。收到确认后,主节点将事务提交到存储引擎,并将结果返回给客户端。我想知道从节点何时提交?
发布于 2016-01-05 20:50:06
无论何时,slave都会提交,这可能在几毫秒之内,但如果slave延迟,也会花费大量时间,因为它过载或动力不足,或者因为某个进程在slave上获得了锁,从而导致更新等待锁。
半同步复制通过确保至少有一个从设备保存--而不是执行--事务的副本,来保证没有事务丢失()。
一旦任何从服务器上的replication IO_THREAD接收到复制事件并将其写入磁盘上的中继日志,并且向主服务器确认了这一事实,数据就不会发生任何单次故障丢失。
仅在事件已写入其中继日志并刷新到磁盘后,从机才确认收到事务的事件。
https://dev.mysql.com/doc/refman/5.7/en/replication-semisync.html
从机SQL_THREAD读取IO_THREAD已写入中继日志的事件,并将其应用于从机的数据集,但该部分是一个完全异步的过程,不向半同步逻辑提供反馈。
如果您需要从服务器立即同步,以便对刚刚写入主服务器的数据进行读查询,则可以使用本机复制--异步(传统)和半同步都不能提供这一功能。如果这是您所需要的,那么您需要Galera Replication Provider,它可以使复制真正同步(并使集群中的所有服务器成为可写的主服务器)。
https://stackoverflow.com/questions/34604246
复制相似问题