Bug #109926 Clone plugin does not support transactional SEs other than InnoDB
Submitted: 3 Feb 2023 15:30 Modified: 21 Jun 2023 8:58
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: Clone Plugin Severity:S4 (Feature request)
Version:8.0.32 OS:Any
Assigned to: CPU Architecture:Any

[3 Feb 2023 15:30] Laurynas Biveinis
Description:
This is an umbrella bug for the individual bugs and missing features for clone plugin to be able to support other transactional storage engines in addition to InnoDB.

The length of this list should not be taken as some implication that the clone plugin is "poorly implemented" or anything like that. It does have the core feature that makes any implementation possible - clone locators - and it is hard to design up front and support non-InnoDB transactional engines without having one and actually doing the implementation work.

Missing features:
- https://bugs.mysql.com/bug.php?id=109921 (Cannot clone with synchronization across SEs)
- https://bugs.mysql.com/bug.php?id=109922 (SEs do not coordinate clone rollbacks on instance startup)
- https://bugs.mysql.com/bug.php?id=109920 (SEs cannot add to clone data size estimates)
- https://bugs.mysql.com/bug.php?id=109919 (Clone plugin does not support arbitrary length O_DIRECT files)
- https://bugs.mysql.com/bug.php?id=108872 (No reasonable way to report clone client errors if >1 SE)

Bugs:
- https://bugs.mysql.com/bug.php?id=106737 (Wrong SE called to ack clone application if >1 SE)
- https://bugs.mysql.com/bug.php?id=107715 (Multiple SE clone not calling clone_end after mixed clone_begin failure/success)

For the bugs, I have provided fixes through OCA. For the feature requests I have also provided possible implementations through OCA, even though they are not mergeable as-is.

There are few more features to be requested that I am not logging yet because need to collect more information or incubate otherwise:
- Reconnects after intermittent network errors should be handled in the plugin, not InnoDB
- Clone stages should be handled by the plugin, not InnoDB
- Errors, especially communicating them between parallel worker threads, should be handled by the plugin, not InnoDB.
You might notice a trend in the above.

How to repeat:
See above
[6 Feb 2023 4:56] MySQL Verification Team
Hello Laurynas,

Thank you for the feature request!

regards,
Umesh
[21 Jun 2023 8:58] Laurynas Biveinis
- https://bugs.mysql.com/bug.php?id=111496 (the transaction SE set should be negotiated in the protocol instead of crashing later with unknown locators)