mariadb/storage/innobase
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
..
btr Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
buf Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
data MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
dict Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
eval MDEV-26938 Support descending indexes internally in InnoDB 2022-01-26 18:43:05 +01:00
fil Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fsp Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fts Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
fut Merge 10.11 into 11.4 2024-12-02 11:35:34 +02:00
gis Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
ha MDEV-35472 Server crash in ha_storage_put_memlim upon reading from INNODB_LOCKS 2024-11-25 10:31:57 +02:00
handler MDEV-31949 III. Innodb flush_log_later for XA commit,rollback 2025-05-21 15:45:06 +03:00
ibuf MDEV-29445: Reimplement SET GLOBAL innodb_buffer_pool_size 2025-03-26 17:05:44 +02:00
include Fix remaining typos 2025-04-29 11:18:00 +10:00
lock Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
log Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
mem MDEV-35049: btr_search_check_free_space_in_heap() is a bottleneck 2025-01-10 16:30:42 +02:00
mtr Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
mysql-test/storage_engine Remove dates from all rdiff files 2025-01-05 16:40:11 +02:00
os Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
page Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
pars Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
que MDEV-24035 Failing assertion: UT_LIST_GET_LEN(lock.trx_locks) == 0 causing disruption and replication failure 2024-12-12 18:02:00 +02:00
read Fix typos in C comments inside storage/ 2025-03-26 16:56:50 +04:00
rem MDEV-35049: Use CRC-32C and avoid allocating heap 2025-01-10 16:39:44 +02:00
row Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
srv Merge branch '11.8' into main 2025-04-18 17:11:01 +02:00
sync Merge 10.6 into 10.11 2024-10-03 10:55:08 +03:00
trx Added VALGRIND_YIELD to be able to abort from busy loops 2025-04-28 12:59:39 +03:00
unittest Merge 11.4 into 11.8 2025-04-02 14:07:01 +03:00
ut Fix typos in user-facing messages 2025-04-19 02:47:33 +04:00
.clang-format-old switch off storage/innobase/.clang-format: InnoDB uses a common formatting style for all new code 2021-03-17 11:01:15 +03:00
CMakeLists.txt Merge 11.4 into 11.8 2025-03-05 20:39:47 +02:00
COPYING.Google
COPYING.Percona