mariadb/mysql-test/suite/rpl/include
Kristian Nielsen 6f6baf9655 MDEV-34705: Binlog-in-engine: Read side of out-of-band binlogging
With this commit, the out-of-band binlogging of large event groups in
multiple smaller records interleaved with other event groups is now working.

Instead of flushing the binlog cache to disk when they reach
@@binlog_cache_size, instead the cache is binlogged as an out-of-band
record. Then at transaction commit, a commit record is written containing
just the GTID and a link to the out-of-band data.

To facilitate append-only operation, the binlogged records do not have a
"next" pointer. Instead, they are written out as a forest of perfect binary
trees, the leftmost leaf of one tree pointing to the root of the previous
tree. This structure is used in the binlog reader to efficiently read out
the event group data consecutively for the binlog dump thread, needing to
maintain only O(log(N)) amount of memory during the reading.

As part of this commit, the existing binlog reader code is refactored to be
greatly improved, with a much cleaner explicit state machine and handling of
chunk/page/file boundaries etc.

Also fixes some bugs in the gtid_search::find_gtid_pos().

Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
2025-04-06 10:01:50 +02:00
..
check_type.inc MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
create_or_drop_sync_func.inc MDEV-30323 Some DDLs like ANALYZE can complete on parallel slave out of order 2023-01-24 20:18:03 +02:00
create_recursive_construct.inc Merge branch '10.2' into 10.3 2019-03-17 13:06:41 +01:00
delayed_slave_wait_on_query.inc Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
hrtime.inc MDEV-3929 Add system variable explicit_defaults_for_timestamp for compatibility with MySQL 2015-09-22 14:01:54 +04:00
mdev-31448_conservative.inc Merge branch '10.5' into 10.6 2023-12-17 11:20:43 +01:00
mdev-31448_optimistic.inc Merge branch '10.5' into 10.6 2023-12-17 11:20:43 +01:00
multisource.inc MDEV-31857 enable --ssl-verify-server-cert by default in the internal client 2024-02-04 22:19:19 +01:00
mysqlbinlog_slave_consistency.inc Merge branch '10.6' into 10.11 2023-12-18 11:19:04 +01:00
rpl_auto_increment.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_auto_increment_insert_view.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_auto_increment_invoke_trigger.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_autoinc_func_invokes_trigger.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_binlog_max_cache_size.inc Renaming a few mysql-test/suite/rpl/include/*.test files into *.inc 2024-07-09 08:46:40 +04:00
rpl_blackhole.test Merge branch '10.2' into 10.3 2019-06-14 07:36:47 +02:00
rpl_blackhole_basic.test Merge branch '10.2' into 10.3 2019-06-14 07:36:47 +02:00
rpl_change_master_demote.inc Merge branch '11.3' into 11.4 2024-02-15 13:53:21 +01:00
rpl_charset.inc Renaming a few mysql-test/suite/rpl/include/*.test files into *.inc 2024-07-09 08:46:40 +04:00
rpl_check_table_consistency.inc MDEV-20119: Implement the --do-domain-ids, --ignore-domain-ids, and --ignore-server-ids options for mysqlbinlog 2022-04-19 11:09:24 -06:00
rpl_commit_after_flush.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_conflicts.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_ddl.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_deadlock.test MDEV-19801: Change defaults for CHANGE MASTER TO so that GTID-based replication is used by default if master supports it 2022-07-26 13:31:27 -06:00
rpl_delete_no_where.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_drop_create_temp_table.inc Merge branch '10.2' into 10.3 2021-11-05 19:58:32 +01:00
rpl_drop_create_temp_table.test Merge branch '10.2' into 10.3 2021-11-05 19:58:32 +01:00
rpl_EE_err.test Changed FLUSH TABLES to not change share version 2018-12-09 22:12:26 +02:00
rpl_extra_col_master.inc Renaming a few mysql-test/suite/rpl/include/*.test files into *.inc 2024-07-09 08:46:40 +04:00
rpl_extra_col_slave.test MDEV-29021 mark fields that have explicit values 2023-08-15 10:16:12 +02:00
rpl_failed_optimize.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_flsh_tbls.test MDEV-19801: Change defaults for CHANGE MASTER TO so that GTID-based replication is used by default if master supports it 2022-07-26 13:31:27 -06:00
rpl_get_master_version_and_clock.test MDEV-32104 remove deprecated features 2023-09-30 14:43:12 +02:00
rpl_gtid_index.inc MDEV-34705: Binlog-in-engine: Read side of out-of-band binlogging 2025-04-06 10:01:50 +02:00
rpl_gtid_index_cleanup.inc MDEV-34705: Binlog-in-engine: Working replication to slave 2025-04-06 10:00:17 +02:00
rpl_gtid_index_setup.inc MDEV-34705: Binlog-in-engine: Working replication to slave 2025-04-06 10:00:17 +02:00
rpl_gtid_until_before_after_gtids.test MDEV-27247: Add keywords "SQL_BEFORE_GTIDS" and "SQL_AFTER_GTIDS" for START SLAVE UNTIL 2023-10-23 06:40:05 -06:00
rpl_implicit_commit_binlog.test Merge branch '10.2' into 10.3 2018-05-11 13:15:10 +02:00
rpl_innodb.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_insert_delayed.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_insert_id.test MDEV-31003: Second execution for ps-protocol 2023-07-26 17:15:00 +07:00
rpl_insert_id_pk.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_insert_ignore.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_loaddata.test MDEV-19801: Change defaults for CHANGE MASTER TO so that GTID-based replication is used by default if master supports it 2022-07-26 13:31:27 -06:00
rpl_loadfile.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_log.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_lower_case_table_names.test Merge 10.2 into 10.3 2018-11-06 09:40:39 +02:00
rpl_max_relay_size.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_mixed_check_db.inc MDEV-6720 - enable connection log in mysqltest by default 2016-03-31 10:11:16 +04:00
rpl_mixed_check_event.inc MDEV-6720 - enable connection log in mysqltest by default 2016-03-31 10:11:16 +04:00
rpl_mixed_check_select.inc MDEV-6720 - enable connection log in mysqltest by default 2016-03-31 10:11:16 +04:00
rpl_mixed_check_table.inc MDEV-6720 - enable connection log in mysqltest by default 2016-03-31 10:11:16 +04:00
rpl_mixed_check_user.inc MDEV-16238 root/localhost authn prioritizes authentication_string over Password 2018-06-21 10:15:27 +02:00
rpl_mixed_check_view.inc MDEV-6720 - enable connection log in mysqltest by default 2016-03-31 10:11:16 +04:00
rpl_mixed_clear_tables.inc copy from test-extra-5.1 to main tree 2007-02-06 13:35:54 +01:00
rpl_mixed_ddl.inc MDEV-6720 - enable connection log in mysqltest by default 2016-03-31 10:11:16 +04:00
rpl_mixed_dml.inc UUID() function should return UUID, not VARCHAR(36) 2021-10-29 18:29:02 +02:00
rpl_mixed_show_binlog_format.inc copy from test-extra-5.1 to main tree 2007-02-06 13:35:54 +01:00
rpl_mixing_engines.inc MDEV-31003: Second execution for ps-protocol 2023-07-26 17:15:00 +07:00
rpl_mixing_engines.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_multi_query.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_multi_update.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_multi_update2.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_multi_update3.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_not_null.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_parallel_29322.inc Merge branch '10.6' into 10.11 2023-12-18 11:19:04 +01:00
rpl_parallel_incorrect_relay_pos.inc MDEV-18648: slave_parallel_mode= optimistic default in 10.5 2019-12-23 17:48:01 +05:30
rpl_partition.inc MDEV-5798: Wrong errorcode for missing partition after TRUNCATE PARTITION 2024-12-05 08:17:35 +01:00
rpl_partition.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_record_compare.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_relayrotate.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_reset_slave.test MDEV-19801: Change defaults for CHANGE MASTER TO so that GTID-based replication is used by default if master supports it 2022-07-26 13:31:27 -06:00
rpl_reset_slave_all_check.inc MDEV-25284: Assertion `info->type == READ_CACHE || info->type == WRITE_CACHE' failed 2021-10-18 10:43:51 -06:00
rpl_row_annotate.test Changed FLUSH TABLES to not change share version 2018-12-09 22:12:26 +02:00
rpl_row_basic.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_blob.test MDEV-30985 Replica stops with error on ALTER ONLINE with Geometry Types 2023-08-15 10:16:13 +02:00
rpl_row_delayed_ins.test Changed FLUSH TABLES to not change share version 2018-12-09 22:12:26 +02:00
rpl_row_func003.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_img.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_img_blobs.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_img_sequence.inc MDEV-31003: Second execution for ps-protocol 2023-07-26 17:15:00 +07:00
rpl_row_sp002.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_sp003.test MDEV-31003: Second execution for ps-protocol 2023-07-26 17:15:00 +07:00
rpl_row_sp006.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_sp007.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_tabledefs.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_row_UUID.test MDEV-31003: Second execution for ps-protocol 2023-07-26 17:15:00 +07:00
rpl_set_null.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_set_statement.inc MDEV-6720 - enable connection log in mysqltest by default 2016-03-31 10:11:16 +04:00
rpl_show_binlog_events.inc Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_show_log_events_with_varying_options.inc Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_show_relaylog_events.inc Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_shutdown_wait_slaves.inc MDEV-32168: slave_error_param condition is never checked from the wait_for_slave_param.inc 2023-11-17 19:44:11 +01:00
rpl_slave_max_statement_time.inc MDEV-27161: Add option for SQL thread to limit maximum execution time per query replicated 2022-08-03 20:25:43 +03:00
rpl_start_stop_slave.test Merge branch '10.6' into 10.11 2023-12-18 11:19:04 +01:00
rpl_stm_create_if_not_exists.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_stm_EE_err2.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_stop_middle_group.test MDEV-31005: Make working cursor-protocol 2024-09-18 18:39:26 +07:00
rpl_stop_slave.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_sv_relay_space.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_test_framework.inc Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_tmp_table_and_DDL.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_trig004.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_truncate.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_truncate_helper.test Move mysql-test-run/extra/rpl_tests to suite/rpl/include 2018-03-29 13:59:44 +03:00
rpl_xa_empty_transaction.inc MDEV-25616 XA PREPARE event group is not binlogged when.. 2022-10-25 12:56:33 +03:00
rpl_xa_empty_transaction_test_case.inc MDEV-25616 XA PREPARE event group is not binlogged when.. 2022-10-25 12:56:33 +03:00
rpl_xa_mixed_engines.inc MDEV-742 XA PREPAREd transaction survive disconnect/server restart 2020-03-14 22:45:48 +02:00
sql_multisource.inc MDEV-20119: Implement the --do-domain-ids, --ignore-domain-ids, and --ignore-server-ids options for mysqlbinlog 2022-04-19 11:09:24 -06:00
sql_out_of_order_gtid.inc MDEV-20119: Implement the --do-domain-ids, --ignore-domain-ids, and --ignore-server-ids options for mysqlbinlog 2022-04-19 11:09:24 -06:00
start_alter_basic.inc MDEV-11675 Lag Free Alter On Slave 2022-01-27 21:25:07 +02:00
start_alter_concurrent.inc MDEV-11675 Lag Free Alter On Slave 2022-01-27 21:25:07 +02:00
start_alter_include.inc MDEV-11675 Lag Free Alter On Slave 2022-01-27 21:25:07 +02:00
start_alter_options.inc MDEV-11675 Lag Free Alter On Slave 2022-01-27 21:25:07 +02:00
sync_with_master_sql_delay_debug_sync.inc MDEV-33500 (part 2): rpl.rpl_parallel_sbm can still fail 2024-09-17 06:29:20 -06:00
type_conversions.test Merge 10.2 into 10.3 2018-10-17 19:37:05 +03:00