The default behavior of MySQL replication is asynchronous, the master does not wait for slaves to get the events. The restriction is alleviated by introducing semi-synchronous replication protocol, which allows slaves to register as semi-sync slaves, and the master will block the return from commit of a transaction until at least one of the semi-sync slave have acknowledged reception of the events.
In MySQL 6.0, the server provided a set of interfaces to extend the feature of replication with plugins. Semi-synchronous replication components implemented the semi-synchronous replication protocol by using these interfaces. There are two plugins for semi-sync, one for the master and the other for the slave, they can be loaded and unloaded at runtime.
- 9. By He Zhenxing <email address hidden> on 2009-04-29
BUG#44058 Possible semi-sync replication bugs (component part)
Semi-sync master component does not set the thread's proc info,
nor set the mysys_var-
>current_ cond/mutex, which made KILL not
able to awake the thread that was waiting for the ACK, and didn't
know what the thread was waiting for.
This patch fixed the problem by calling enter_cond and exit_cond
accordingly in semi-sync master component before and after waiting
for ACK from slave.
- 8. By He Zhenxing <email address hidden> on 2009-04-17
Turn on master seni-sync status after user enables semi-sync,
don't wait if no semi-sync slave connected or master semi-sync
status is off
- 7. By He Zhenxing <email address hidden> on 2009-02-12
BUG#40934 Semisynchronous replication: Change initial state after installation
Changed initial state of semi-sync on slave and master from enabled
to disabled after installed plugin.
- 6. By He Zhenxing <email address hidden> on 2009-02-02
Update result file after previous commit
- 5. By He Zhenxing <email address hidden> on 2008-12-26
Changed master component variable and function prefix from rpl_semi_sync to rpl_semi_
Removed some unused global variables
Made the test result more readable
- 4. By He Zhenxing <email address hidden> on 2008-11-05
Fix master status variables
Add non-install headers
Temporarily add replication.h
Change package name to 'mysql-
- Branch format:
- Branch format 6
- Repository format:
- Bazaar pack repository format 1 (needs bzr 0.92)