Details
-
New Feature
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
The MASTER_GTID_WAIT() function waits until the GTID is executed by the SQL thread. A function that does the same but for the IO thread would be useful as a building block for a "client-side semi-sync" implementation.
Right now semi-sync is all-or-nothing and providing a mechanism at the SQL layer for emulating this would make the replication more efficient by removing the ACKs and reducing work that's not needed. Having the client decide which transactions to sync would make it possible to have a mixed mode where some transactions are synced while others aren't.
In the case of MaxScale, it could be used to implement a stronger variant of semi-sync replication that never falls back to async replication and always delays all commits by the given timeout instead of disabling semi-sync permanently once no replicas are available. Some of the details for the specific MaxScale implemenation will be described in MXS-6882.
Attachments
Issue Links
- blocks
-
MXS-6882 Add IO thread position based version of sync_transaction
-
- Open
-
- relates to
-
MDEV-38190 Extend Binlog-in-Engine with Semi-sync Support
-
- Stalled
-