Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.3.1-1
Description
Implement that server reads/updates the GTID position using multiple tables
mysql.gtid_slave_pos_XXX, each using a different storage engine. Replicated
transactions update the version of the table in the same engine, if
available. This avoids the overhead of cross-engine transactions on servers
where multiple storage engines are in use at the same time (but not in the
same transactions).
See mailing list thread: https://lists.launchpad.net/maria-developers/msg10453.html
Attachments
Issue Links
- relates to
-
MDEV-11657 Cross-engine transaction metadata
-
- Open
-
-
MDEV-13236 Document MDEV-12179 (Per-engine mysql.gtid_slave_pos tables)
-
- Closed
-
-
MDEV-34778 Inconsistent Seconds_Behind_Master after slave stop+start (rpl.rpl_old_master sporadic failure)
-
- Open
-
MDEV-11657 suggests an alternative approach (with a much wider scope): storing the transaction state in a global table. This would require substantial changes to transactional storage engines, but it would avoid the need of using binlog’s XA 2PC mechanism for multi-engine transactions.
With MDEV-11657, persistent transactions would be registered in only one place, with GTID, XID and everything in a single place.