1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-09 22:24:09 +03:00

MDEV-7850: Extend GTID Binlog Events with Thread Id

This patch augments Gtid_log_event with the user thread-id.
In particular that compensates for the loss of this info in
Rows_log_events.

Gtid_log_event::thread_id gets visible in mysqlbinlog output like

  #231025 16:21:45 server id 1  end_log_pos 537 CRC32 0x1cf1d963  GTID 0-1-2 ddl thread_id=10

as 64 bit unsigned integer.

While the size of Gtid event has grown by 8-9 bytes
replication from OLD <-> NEW is not affected by it.

This work was started by the late Sujatha Sivakumar.
Brandon Nesterenko took it over, reviewed initial patches and extended
the work.

Reviewed-by: <andrei.elkin@mariadb.com>
This commit is contained in:
Brandon Nesterenko
2023-07-10 18:53:19 +03:00
parent 8bf9f21855
commit c37b2087b4
34 changed files with 1006 additions and 785 deletions

View File

@@ -107,7 +107,7 @@ ROLLBACK/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl thread_id=#
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
@@ -126,7 +126,7 @@ SET @@session.collation_database=DEFAULT/*!*/;
CREATE DATABASE test1
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -134,7 +134,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test2
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -142,7 +142,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test3
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 thread_id=#
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
@@ -169,7 +169,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 thread_id=#
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
@@ -196,7 +196,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 thread_id=#
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
@@ -223,7 +223,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 thread_id=#
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
@@ -265,7 +265,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 thread_id=#
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
@@ -292,7 +292,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 thread_id=#
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
@@ -345,7 +345,7 @@ ROLLBACK/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl thread_id=#
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
@@ -364,15 +364,15 @@ SET @@session.collation_database=DEFAULT/*!*/;
CREATE DATABASE test1
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
# at #
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
# at #
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 thread_id=#
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
@@ -399,7 +399,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 thread_id=#
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
@@ -412,7 +412,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 thread_id=#
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
@@ -425,7 +425,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 thread_id=#
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
@@ -455,7 +455,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 thread_id=#
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
@@ -468,7 +468,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 thread_id=#
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
@@ -504,7 +504,7 @@ ROLLBACK/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl thread_id=#
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
@@ -523,7 +523,7 @@ SET @@session.collation_database=DEFAULT/*!*/;
CREATE DATABASE test1
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -531,7 +531,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test2
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -539,7 +539,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test3
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 thread_id=#
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
@@ -564,7 +564,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 thread_id=#
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
@@ -589,7 +589,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 thread_id=#
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
@@ -614,7 +614,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 thread_id=#
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
@@ -652,7 +652,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 thread_id=#
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
@@ -677,7 +677,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 thread_id=#
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
@@ -730,7 +730,7 @@ ROLLBACK/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl thread_id=#
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
@@ -749,7 +749,7 @@ SET @@session.collation_database=DEFAULT/*!*/;
CREATE DATABASE test1
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -757,7 +757,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test2
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -765,7 +765,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test3
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 thread_id=#
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
@@ -792,7 +792,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 thread_id=#
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
@@ -819,7 +819,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 thread_id=#
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
@@ -846,7 +846,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 thread_id=#
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
@@ -888,7 +888,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 thread_id=#
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
@@ -915,7 +915,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 thread_id=#
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
@@ -968,7 +968,7 @@ ROLLBACK/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl thread_id=#
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
@@ -987,15 +987,15 @@ SET @@session.collation_database=DEFAULT/*!*/;
CREATE DATABASE test1
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
# at #
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
# at #
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 thread_id=#
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
@@ -1022,7 +1022,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 thread_id=#
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
@@ -1035,7 +1035,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 thread_id=#
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
@@ -1048,7 +1048,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 thread_id=#
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
@@ -1078,7 +1078,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 thread_id=#
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
@@ -1091,7 +1091,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 thread_id=#
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;
@@ -1127,7 +1127,7 @@ ROLLBACK/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Binlog checkpoint master-bin.000001
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-1 ddl thread_id=#
/*!100101 SET @@session.skip_parallel_replication=0*//*!*/;
/*!100001 SET @@session.gtid_domain_id=0*//*!*/;
/*!100001 SET @@session.server_id=1*//*!*/;
@@ -1146,7 +1146,7 @@ SET @@session.collation_database=DEFAULT/*!*/;
CREATE DATABASE test1
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-2 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=2*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -1154,7 +1154,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test2
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl
#010909 4:46:40 server id # end_log_pos # GTID 0-1-3 ddl thread_id=#
/*!100001 SET @@session.gtid_seq_no=3*//*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0 xid=<xid>
@@ -1162,7 +1162,7 @@ SET TIMESTAMP=1000000000/*!*/;
CREATE DATABASE test3
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4
#010909 4:46:40 server id # end_log_pos # GTID 0-1-4 thread_id=#
/*!100001 SET @@session.gtid_seq_no=4*//*!*/;
START TRANSACTION
/*!*/;
@@ -1186,7 +1186,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5
#010909 4:46:40 server id # end_log_pos # GTID 0-1-5 thread_id=#
/*!100001 SET @@session.gtid_seq_no=5*//*!*/;
START TRANSACTION
/*!*/;
@@ -1210,7 +1210,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6
#010909 4:46:40 server id # end_log_pos # GTID 0-1-6 thread_id=#
/*!100001 SET @@session.gtid_seq_no=6*//*!*/;
START TRANSACTION
/*!*/;
@@ -1234,7 +1234,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7
#010909 4:46:40 server id # end_log_pos # GTID 0-1-7 thread_id=#
/*!100001 SET @@session.gtid_seq_no=7*//*!*/;
START TRANSACTION
/*!*/;
@@ -1271,7 +1271,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8
#010909 4:46:40 server id # end_log_pos # GTID 0-1-8 thread_id=#
/*!100001 SET @@session.gtid_seq_no=8*//*!*/;
START TRANSACTION
/*!*/;
@@ -1295,7 +1295,7 @@ SET TIMESTAMP=1000000000/*!*/;
COMMIT
/*!*/;
# at #
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9
#010909 4:46:40 server id # end_log_pos # GTID 0-1-9 thread_id=#
/*!100001 SET @@session.gtid_seq_no=9*//*!*/;
START TRANSACTION
/*!*/;