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

Reply via email to