mariadb/storage/innobase/handler
Andrei 674c9b0261 MDEV-31949 III. Innodb flush_log_later for XA commit,rollback
This commit carries changes to Innodb for the user XA's binlog-coordinated
 ordered commit. It's the part III of the series aimed at
improving on parallel slave performance and providing crash-recovery.

As the part I has unified binlog coordinated completion (commit and
rollback) of the XA transactions with the normal ones a remained
task is to optimize flush to disk call away from the XA completion execution
in engine like it's done to the normal transaction.
Namely innobase_{rollback,commit}_by_xid()^\footnote{Unlike the normal
transaction case, XA-rollback also needs a similar addressing} now
raise a flag blocking the flush before innobase_commit_low().
The flag is restored upon that, which of course what the normal
transaction does in its execution path past the low-commit.

Tests demonstrate the changes are effectual, e.g
binlog_xa_prepared_disconnect.test " failed ", to require it to
adapted to possible loss of the commit/rollback upon crash.
Binlog recovery in such scenarios is going to be recovered in the part
IV of MDEV-33168. The feasibility of successful recovery of
XA-"COMPLETE" is based on a plain observation, that in order to decide
whether to commit an XA or not it's sufficient to follow
the normal transaction recovery rule: when xid is found in binlog
the transaction gets completed (committed in the normal transaction case).
2025-05-21 15:45:06 +03:00
..
ha_innodb.cc MDEV-31949 III. Innodb flush_log_later for XA commit,rollback 2025-05-21 15:45:06 +03:00
ha_innodb.h Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
handler0alter.cc Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
i_s.cc Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
i_s.h Merge 10.5 into 10.6 2021-08-23 11:21:33 +03:00