Details
-
New Feature
-
Status: Stalled (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
Description
With some type of load, such as one statement "light" transactions, the user xa may perform much poorer on the optimistic parallel slave than an equivalent normal - BEGIN..COMMIT - load.
This ticket aims at fixing the slowness while the XA high-availability is to be preserved.
The whole work is arranged in two parts:
1. refactoring of the user xa binary logging to facilitate slave side parallel execution
MDEV-32830;
2. the slave side change of the parallel scheduler to apply Round-Robin distribution
for the user XA transactions.
Attachments
Issue Links
- causes
-
MDEV-32257 Assertion `thd->is_killed()' failed in XID_cache_element::acquired_to_recovered (opt) or acquire_xid (dbg) on XA ROLLBACK or XA COMMIT
-
- Closed
-
-
MDEV-32347 Stack smashing/looping, ASAN use-after-poison in xid_t::eq/event_xid_t::serialize, SIGSEGV in serialize_xid and Assertion `is_async_xac || thd->lex->xid->eq(thd->transaction->xid_state.get_xid())' failed in binlog_rollback_flush_trx_cache upon LOAD INDEX
-
- Closed
-
-
MDEV-32463 SIGSEGV in __memmove_avx_unaligned_erms from a memcpy in xid_t::set (sql/handler.h:896) from Gtid_log_event::Gtid_log_event
-
- Closed
-
-
MDEV-32469 MDEV-31949: MTR outcome difference: MTR testcase from MDEV-27512 crashes in BASE but not in PATCH
-
- Closed
-
-
MDEV-32470 MDEV-31949: use-after-poison in xid_t::key_length()
-
- Closed
-
-
MDEV-33673 Parallel replica threads lockup when using many XA threads in bb-10.6-MDEV-31949_ver0
-
- Closed
-
- is blocked by
-
MDEV-32257 Assertion `thd->is_killed()' failed in XID_cache_element::acquired_to_recovered (opt) or acquire_xid (dbg) on XA ROLLBACK or XA COMMIT
-
- Closed
-
-
MDEV-32272 lock_release_on_prepare_try() does not release lock if supremum bit is set along with other bits set in lock's bitmap
-
- Closed
-
-
MDEV-32347 Stack smashing/looping, ASAN use-after-poison in xid_t::eq/event_xid_t::serialize, SIGSEGV in serialize_xid and Assertion `is_async_xac || thd->lex->xid->eq(thd->transaction->xid_state.get_xid())' failed in binlog_rollback_flush_trx_cache upon LOAD INDEX
-
- Closed
-
-
MDEV-32470 MDEV-31949: use-after-poison in xid_t::key_length()
-
- Closed
-
-
MDEV-32830 refactor XA binlogging for better integration with BGC/replication/recovery
-
- In Progress
-
-
MDEV-32852 Assertion `is_prepared_xa(thd) || ((thd->lex->sql_command == SQLCOM_XA_ROLLBACK && thd->transaction->xid_state.get_state_code() == XA_IDLE) || thd->lex->xa_opt == XA_ONE_PHASE)' failed in TC_LOG::run_commit_ordered
-
- Closed
-
-
MDEV-32857 Assertion `thd->lex->sql_command == SQLCOM_XA_COMMIT || thd->lex->sql_command == SQLCOM_XA_ROLLBACK' failed in TC_LOG::run_commit_ordered
-
- Closed
-
-
MDEV-33673 Parallel replica threads lockup when using many XA threads in bb-10.6-MDEV-31949_ver0
-
- Closed
-
- is caused by
-
MDEV-742 LP:803649 - Xa recovery failed on client disconnection
-
- Closed
-
- relates to
-
MDEV-33168 XA crash-recovery base on engines prepare first rule
-
- In Progress
-
-
MDEV-21469 Implement crash-safe logging of the user XA
-
- Stalled
-
-
MDEV-30165 X-lock on supremum for prepared transaction for RR
-
- Closed
-
-
MDEV-32455 Implicit rollback by LOAD INDEX or CACHE INDEX should not touch prepared user XA
-
- Confirmed
-
-
MDEV-32463 SIGSEGV in __memmove_avx_unaligned_erms from a memcpy in xid_t::set (sql/handler.h:896) from Gtid_log_event::Gtid_log_event
-
- Closed
-
-
MDEV-32830 refactor XA binlogging for better integration with BGC/replication/recovery
-
- In Progress
-
- split to
-
MDEV-33667 strict round-robin scheduling of XA events to improve parallel slave performance
-
- Closed
-
-
MDEV-33668 Adapt parallel slave's round-robin scheduling to XA events
-
- Closed
-
masonmariadb, the whole work includes now the IVth recovery commit. Sergei is reviewing the general binlogging part I. split from this ticket as MDEV-32830, which has been refined to reflect the recovery concern raised by Kristian.
The part II is on Kristian, I'll notify him once the part IV is finally readied for review by Sergei and him (ETA: Mon).
The part III is about few Innodb changes that Marko needs look at, also when the IV is out.