mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Move deletion of old GTID rows to slave background thread
This patch changes how old rows in mysql.gtid_slave_pos* tables are deleted. Instead of doing it as part of every replicated transaction in record_gtid(), it is done periodically (every @@gtid_cleanup_batch_size transaction) in the slave background thread. This removes the deletion step from the replication process in SQL or worker threads, which could speed up replication with many small transactions. It also decreases contention on the global mutex LOCK_slave_state. And it simplifies the logic, eg. when a replicated transaction fails after having deleted old rows. With this patch, the deletion of old GTID rows happens asynchroneously and slightly non-deterministic. Thus the number of old rows in mysql.gtid_slave_pos can temporarily exceed @@gtid_cleanup_batch_size. But all old rows will be deleted eventually after sufficiently many new GTIDs have been replicated.
This commit is contained in:
@@ -294,6 +294,15 @@ The following specify which files/extra groups are read (specified before remain
|
||||
--group-concat-max-len=#
|
||||
The maximum length of the result of function
|
||||
GROUP_CONCAT()
|
||||
--gtid-cleanup-batch-size=#
|
||||
Normally does not need tuning. How many old rows must
|
||||
accumulate in the mysql.gtid_slave_pos table before a
|
||||
background job will be run to delete them. Can be
|
||||
increased to reduce number of commits if using many
|
||||
different engines with --gtid_pos_auto_engines, or to
|
||||
reduce CPU overhead if using a huge number of different
|
||||
gtid_domain_ids. Can be decreased to reduce number of old
|
||||
rows in the table.
|
||||
--gtid-domain-id=# Used with global transaction ID to identify logically
|
||||
independent replication streams. When events can
|
||||
propagate through multiple parallel paths (for example
|
||||
@@ -1434,6 +1443,7 @@ gdb FALSE
|
||||
general-log FALSE
|
||||
getopt-prefix-matching FALSE
|
||||
group-concat-max-len 1048576
|
||||
gtid-cleanup-batch-size 64
|
||||
gtid-domain-id 0
|
||||
gtid-ignore-duplicates FALSE
|
||||
gtid-pos-auto-engines
|
||||
|
Reference in New Issue
Block a user