Skip to Main Content

MySQL Database

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

how does variable rpl_semi_sync_master_wait_point work in mysql 5.7.2 onwards?

2784987Feb 14 2016 — edited Apr 7 2016

In mysql 5.7.2 onwards,variable rpl_semi_sync_master_wait_point is used to control when the transactions in the master waits for the response from one of slaves for semi sync replication.

if we set the variable as after_sync,according to the document:

Upon receiving acknowledgment, the master commits the transaction to the storage engine and returns a result to the client, which then can proceed.

that means if the master can't receive response from one of its slaves and the master crashes before timeout happens which is defined by rpl_semi_sync_master_timeout,the transaction should fail.

but my test shows that it is not true.

I set rpl_semi_sync_master_timeout to a bigger value such as 10000,stopped all slave io threads and launched a transaction,then the transaction waited for the response from one of slaves,then I crashed the master by killing the mysqld process.after I restarted mysqld process,it showed that the transaction succeeded,which should fail as decribed in the doc.

why?

thanks

Comments

Processing

Post Details

Added on Feb 14 2016
12 comments
1,603 views