Hi > If there are additional events beyond that, it retrieves those in sequence after it writes the current statement into the relay logs.
I have a question about this: Whether the slave is sent a signal whenever the master generates each event? -----Original Message----- From: Shawn Green [mailto:shawn.l.gr...@oracle.com] Sent: Friday, July 27, 2012 2:51 AM To: mysql@lists.mysql.com Subject: Re: How often the slave to pull data from master? Hello Rick, You nearly got it all correct. On 7/26/2012 1:21 PM, Rick James wrote: > My understanding is... > > * There is a "permanent" connection (TCP/IP socket) between the Master and each Slave. This is opened by the Slave when the slave starts (or restarts or recovers from a network glitch). > > * Master writes to binlog _and_ to that connection whenever there is a 'write' operation. (I do not know whether the binlog is written/flushed before or after or simultaneous with writing to the Slave(s).) The slave is sent a signal that more data is available. The slave then requests that data from the master's binary log at the 'next' position it expects it to be. If there are additional events beyond that, it retrieves those in sequence after it writes the current statement into the relay logs. > > * If the connection is interrupted, the Slave will reconnect and ask the Master for "old" info. This comes from the binlog. Otherwise, the Master's binlog file is not part of the flow of data from Master to Slave. > Once the slave can reconnect, it asks for the 'next' statement in sequence (based on the end of the last statement it has received). Any statements beyond that already in the binary logs retrieved in sequence. If there is no 'next' statement, it waits for a signal that more data is available. If the binary log was shortened (which can occasionally happen during an InnoDB recovery processing) the slave throws an error and waits for the DBA to fix things. The removal of statements and the conditions necessary to remove some events from the end of the binary log is discussed here: http://dev.mysql.com/doc/refman/5.1/en/binary-log.html > * Semi-sync (5.5) adds some chatter from Slave to Master so that the Master can wait for at least one Slave to have written to its relay log. > > * Percona Cluster, Galera, etc., add more complexity to the replication traffic. > ... Yours, -- Shawn Green MySQL Principal Technical Support Engineer Oracle USA, Inc. - Hardware and Software, Engineered to Work Together. Office: Blountville, TN -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/mysql