Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-33668

Adapt parallel slave's round-robin scheduling to XA events

Details

    Description

      This ticket offers an alternative to MDEV-33667 solution for improving parallel slave performance of XA transaction load.
      Round-robin distribution is mingled with assigning XA-"COMPLETE" events to the same
      slave workers that currently may be processing respective XA-PREPARE parts.

      The algorithm tries to reach fair distribution but it can't provide the parallelism of
      XA-PREPARE with XA-COMMIT (ROLLBACK).

      Currently knielsen_xa_sched_minimal_fix branch contains such solution.

      10.6 Rebase branch: bb-10.6-MDEV-33668
      https://github.com/MariaDB/server/commits/bb-10.6-MDEV-33668/

      Attachments

        Issue Links

          Activity

            Roel Roel Van de Paar added a comment - - edited

            Elkin What will happen with the additional patches that bnestere and knielsen discussed/proposed? Also, where does this leave MDEV-31949/ MENT-1905?

            Roel Roel Van de Paar added a comment - - edited Elkin What will happen with the additional patches that bnestere and knielsen discussed/proposed? Also, where does this leave MDEV-31949 / MENT-1905?
            Elkin Andrei Elkin added a comment -

            Roel, that code is currently in Kristian's branch. I thought the best place for it would be 11.5, as a polished version of this bug fixes.
            MDEV-31949 keeps aiming to 11.6.

            Elkin Andrei Elkin added a comment - Roel , that code is currently in Kristian's branch. I thought the best place for it would be 11.5, as a polished version of this bug fixes. MDEV-31949 keeps aiming to 11.6.

            Elkin Ack, thank you. Should a new ticket be created for those patches? As they will require testing, I think we should look at 11.6 for those as well.
            Also, is this patch (MDEV-33668 inc the additional patches) fully compatible with MDEV-31949?

            Roel Roel Van de Paar added a comment - Elkin Ack, thank you. Should a new ticket be created for those patches? As they will require testing, I think we should look at 11.6 for those as well. Also, is this patch ( MDEV-33668 inc the additional patches) fully compatible with MDEV-31949 ?
            Elkin Andrei Elkin added a comment -

            Roel, a new ticket, of course. I'll report one when have fully understood its merge with MDEV-31949. The latter is different on the slave side, maybe the merge with this solution will lessen that, and 31949 also refines the master side because of recovery (MDEV-21777, MDEV-32830).

            Elkin Andrei Elkin added a comment - Roel , a new ticket, of course. I'll report one when have fully understood its merge with MDEV-31949 . The latter is different on the slave side, maybe the merge with this solution will lessen that, and 31949 also refines the master side because of recovery ( MDEV-21777 , MDEV-32830 ).
            Roel Roel Van de Paar added a comment - - edited

            From the list above (all bugs reproduced in BASE as well, except #6 ftm):

            1. [ERROR] Slave SQL: Commit failed due to failure of an earlier commit on which this one depends, Gtid 0-1-20, Internal MariaDB error code: 1964 (and variations thereof)
            > This is now MDEV-34010

            2. [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'could not find next log; the first event '.' at 4, the last event read from 'binlog.000009' at 2595, the last byte read from 'binlog.000009' at 2702.', Internal MariaDB error code: 1236 (and variations thereof)
            > Filtered after analysis

            3. [ERROR] Slave SQL: Error executing row event: 'You can't combine write-locking of system tables with other tables or lock types', Gtid 0-15-143, Internal MariaDB error code: 1428 (and variations thereof)
            > This is now MDEV-34011

            4. [Warning] Slave: Got error 140 "Wrong create options" from storage engine InnoDB Error_code: 1030 (w/ slave halt). This one may be XA related.
            > This is now MDEV-33961

            5. (Slave Crash) SIGSEGV|dict_table_t::is_active_ddl|trx_t::rollback_low|trx_t::rollback|trx_rollback_last_sql_stat_for_mysql
            > This is now MDEV-34051

            6. (Slave Assertion) thd->transaction->stmt.is_empty() || thd->in_sub_stmt || (thd->state_flags & Open_tables_state::BACKUPS_AVAIL)|SIGABRT|close_thread_tables|mysql_execute_command|mysql_parse|Query_log_event::do_apply_event
            > Ref MDEV-32372

            7. !look_for_rollover || start_scan_slot != slot|SIGABRT|trx_assign_rseg_low|trx_start_low|trx_start_if_not_started_xa_low|create_table_info_t::create_foreign_keys and
            !look_for_rollover || start_scan_slot != slot|SIGABRT|trx_assign_rseg_low|trx_start_low|trx_start_internal_low|dict_stats_fetch_from_ps
            > This is now MDEV-33917

            This comment will be updated as work on bugs progresses is now complete.

            Roel Roel Van de Paar added a comment - - edited From the list above (all bugs reproduced in BASE as well, except #6 ftm): 1. [ERROR] Slave SQL: Commit failed due to failure of an earlier commit on which this one depends, Gtid 0-1-20, Internal MariaDB error code: 1964 (and variations thereof) > This is now MDEV-34010 2. [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'could not find next log; the first event '.' at 4, the last event read from 'binlog.000009' at 2595, the last byte read from 'binlog.000009' at 2702.', Internal MariaDB error code: 1236 (and variations thereof) > Filtered after analysis 3. [ERROR] Slave SQL: Error executing row event: 'You can't combine write-locking of system tables with other tables or lock types', Gtid 0-15-143, Internal MariaDB error code: 1428 (and variations thereof) > This is now MDEV-34011 4. [Warning] Slave: Got error 140 "Wrong create options" from storage engine InnoDB Error_code: 1030 (w/ slave halt). This one may be XA related . > This is now MDEV-33961 5. (Slave Crash) SIGSEGV|dict_table_t::is_active_ddl|trx_t::rollback_low|trx_t::rollback|trx_rollback_last_sql_stat_for_mysql > This is now MDEV-34051 6. (Slave Assertion) thd->transaction->stmt.is_empty() || thd->in_sub_stmt || (thd->state_flags & Open_tables_state::BACKUPS_AVAIL)|SIGABRT|close_thread_tables|mysql_execute_command|mysql_parse|Query_log_event::do_apply_event > Ref MDEV-32372 7. !look_for_rollover || start_scan_slot != slot|SIGABRT|trx_assign_rseg_low|trx_start_low|trx_start_if_not_started_xa_low|create_table_info_t::create_foreign_keys and !look_for_rollover || start_scan_slot != slot|SIGABRT|trx_assign_rseg_low|trx_start_low|trx_start_internal_low|dict_stats_fetch_from_ps > This is now MDEV-33917 This comment will be updated as work on bugs progresses is now complete.

            People

              Elkin Andrei Elkin
              Elkin Andrei Elkin
              Votes:
              1 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.