[MDEV-18983] Port rpl_semi_sync_master_wait_for_slave_count from MySQL Created: 2019-03-20  Updated: 2020-02-21

Status: Open
Project: MariaDB Server
Component/s: Replication
Fix Version/s: None

Type: Task Priority: Major
Reporter: Geoff Montee (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-162 Enhanced semisync replication Closed

 Description   

MySQL 5.7.3 added the rpl_semi_sync_master_wait_for_slave_count option for semisynchronous replication:

The number of slave acknowledgments the master must receive per transaction before proceeding. By default rpl_semi_sync_master_wait_for_slave_count is 1, meaning that semisynchronous replication proceeds after receiving a single slave acknowledgment. Performance is best for small values of this variable.

For example, if rpl_semi_sync_master_wait_for_slave_count is 2, then 2 slaves must acknowledge receipt of the transaction before the timeout period configured by rpl_semi_sync_master_timeout for semisynchronous replication to proceed. If less slaves acknowledge receipt of the transaction during the timeout period, the master reverts to normal replication.

Note
This behavior also depends on rpl_semi_sync_master_wait_no_slave

This variable is available only if the master-side semisynchronous replication plugin is installed.

https://dev.mysql.com/doc/refman/5.7/en/replication-options-master.html#sysvar_rpl_semi_sync_master_wait_for_slave_count

Can we port this from MySQL?



 Comments   
Comment by Andrei Elkin [ 2020-02-21 ]

GeoffMontee: Thanks for reporting it! The counter may help to raise HA level, but it does not cancel semisync architectural limitation (such as lack of membership consensus). I think we are better off to drive towards full synchronous replication MDEV-19410. ralf.gebhardt@mariadb.com ^

Generated at Thu Feb 08 08:48:12 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.