Skip to content

Commit 93f6bad

Browse files
author
Deepthi ES
committed
WL#10475 : Defaults: Enable Parallel Replication Applier
This worklog enbles parallel replication applier by enabling the 3 options by default : Server Changes: slave-parallel-type = LOGICAL_CLOCK : Enables the optimal generic parallelism method. slave-parallel-workers = 4 : Offers a good base level of parallelism. slave-preserve-commit-order = ON : Ensures no user/application visible changes in behavior. User Override slave-parallel-workers = 0 : disables parallel slave applier execution and causes the other two options to be ignored
1 parent 2cf7568 commit 93f6bad

File tree

88 files changed

+166
-115
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+166
-115
lines changed

mysql-test/collections/default.daily

+4-2
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ perl mysql-test-run.pl --timer --force --comment=memcached --vardir=var-memcach
4747
# MTR or mysqld options in this section
4848

4949
# Additional modes for rpl. Multi-Threaded Slave
50-
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_MTS_db_part --vardir=var-mts-rpl_db --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=database --do-suite=rpl --no-skip
51-
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_MTS_LC --vardir=var-mts-rpl_LC --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock --do-suite=rpl --no-skip
50+
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_MTS_db_part --vardir=var-mts-rpl_db --experimental=collections/default.experimental --mysqld=--slave-parallel-type=database --mysqld=--slave-preserve-commit-order=OFF --do-suite=rpl --no-skip
51+
52+
# Additional mode for rpl. Single-Threaded Slave
53+
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_STS --vardir=var-rpl_sts --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=0 --do-suite=rpl --no-skip
5254

5355
# Additional GTID coverage (rpl suite with gtid_mode=ON)
5456
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=rpl_with_gtid --vardir=var-rpl_gtid --suite=rpl --mysqld=--enforce-gtid-consistency --mysqld=--gtid-mode=on --no-skip

mysql-test/collections/default.weekly

+9-7
Original file line numberDiff line numberDiff line change
@@ -48,9 +48,11 @@ perl mysql-test-run.pl --debug-server --timer --force --comment=memcached --var
4848
# Add runs of rpl and binlog test suites with additional
4949
# MTR or mysqld options in this section
5050

51-
# Additional modes for rpl. Multi-Threaded Slave
52-
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_MTS_db_part --vardir=var-mts-rpl_db --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=database --do-suite=rpl --no-skip
53-
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_MTS_LC --vardir=var-mts-rpl_LC --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock --do-suite=rpl --no-skip
51+
# Additional mode for rpl. Multi-Threaded Slave
52+
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_MTS_db_part --vardir=var-mts-rpl_db --experimental=collections/default.experimental --mysqld=--slave-preserve-commit-order=OFF --mysqld=--slave-parallel-type=database --do-suite=rpl --no-skip
53+
54+
# Additional mode for rpl. Single-Threaded Slave
55+
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_STS --vardir=var-rpl-sts --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=0 --do-suite=rpl --no-skip
5456

5557
# Additional GTID coverage (rpl suite with gtid_mode=ON)
5658
perl mysql-test-run.pl --debug-server --force --timer --parallel=auto --experimental=collections/default.experimental --comment=rpl_with_gtid --vardir=var-rpl_gtid --suite=rpl --mysqld=--enforce-gtid-consistency --mysqld=--gtid-mode=on --no-skip
@@ -125,14 +127,14 @@ perl mysql-test-run.pl --force --debug-server --timer --parallel=auto --experime
125127
perl mysql-test-run.pl --force --debug-server --timer --parallel=auto --experimental=collections/default.experimental --comment=binlog_row_hash_scan --vardir=var-binlog_row_hash_scan --mysqld=--binlog-format=row --do-suite=binlog --mysqld=--slave-rows-search-algorithms=HASH_SCAN,INDEX_SCAN --big-test --testcase-timeout=60 --no-skip
126128
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_row_hash_MTS --vardir=var-mts-rpl-hash-n_mix --mysqld=--binlog-format=row --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --do-suite=rpl --mysqld=--slave-rows-search-algorithms=HASH_SCAN,INDEX_SCAN --no-skip
127129
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=binlog_row_hash_MTS --vardir=var-mts-binlog-hash-n_mix --mysqld=--binlog-format=row --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --do-suite=binlog --mysqld=--slave-rows-search-algorithms=HASH_SCAN,INDEX_SCAN --no-skip
128-
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=binlog_row_table_MTS --vardir=var-mts-binlog-table-n_mix --mysqld=--binlog-format=row --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --do-suite=binlog --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --no-skip
129-
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_row_table_MTS --vardir=var-mts-rpl-table-n_mix --mysqld=--binlog-format=row --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --do-suite=rpl --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --no-skip
130+
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=binlog_row_table_STS --vardir=var-sts-binlog-table-n_mix --mysqld=--binlog-format=row --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=0 --do-suite=binlog --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --no-skip
131+
perl mysql-test-run.pl --debug-server --timer --force --parallel=auto --comment=rpl_row_table_STS --vardir=var-sts-rpl-table-n_mix --mysqld=--binlog-format=row --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=0 --do-suite=rpl --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --no-skip
130132

131133
perl mysql-test-run.pl --force --debug-server --timer --parallel=auto --experimental=collections/default.experimental --comment=binlog_row_table_scan --vardir=var-binlog_row_table_scan --mysqld=--binlog-format=row --do-suite=binlog --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --big-test --testcase-timeout=60 --no-skip
132134
perl mysql-test-run.pl --force --debug-server --timer --parallel=auto --experimental=collections/default.experimental --comment=rpl_row_table_scan --vardir=var-rpl_row_table_scan --mysqld=--binlog-format=row --do-suite=rpl --mysqld=--slave-rows-search-algorithms=TABLE_SCAN,INDEX_SCAN --big-test --testcase-timeout=60 --no-skip
133135

134-
# binlog-transaction-dependency-tracking=WRITESET with MTS slave-parellel-type=logical-clock
135-
perl mysql-test-run.pl --timer --force --big-test --testcase-timeout=60 --debug-server --parallel=auto --comment=rpl_MTS-lc-binlog-txn-dependency-tracking --vardir=var-rpl-MTS-lc-binlog-txn-dependency-tracking --do-suite=rpl --experimental=collections/default.experimental --mysqld=--binlog-format=row --mysqld=--slave-parallel-workers=4 --mysqld=--slave-parallel-type=logical_clock --no-skip --mysqld=--binlog-transaction-dependency-tracking=WRITESET
136+
# binlog-transaction-dependency-tracking=WRITESET with MTS
137+
perl mysql-test-run.pl --timer --force --big-test --testcase-timeout=60 --debug-server --parallel=auto --comment=rpl-binlog-txn-dependency-tracking --vardir=var-rpl-binlog-txn-dependency-tracking --do-suite=rpl --experimental=collections/default.experimental --mysqld=--binlog-format=row --no-skip --mysqld=--binlog-transaction-dependency-tracking=WRITESET
136138

137139
# Rpl suite with Transaction-writeset-extraction disabled
138140
perl mysql-test-run.pl --force --timer --parallel=auto --experimental=collections/default.experimental --comment=rpl_without_txn_write_set_extraction --vardir=var-rpl_txn_write_set_extraction_disabled --suite=rpl,rpl_gtid,rpl_nogtid --mysqld=--transaction-write-set-extraction=OFF --no-skip

mysql-test/collections/mysql-trunk-stage.push

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ perl mysql-test-run.pl --timer --force --parallel=auto --comment=innodb_undo-2-d
2020
# Run innodb suites with innodb_undo_table_spaces >0 and different pagesizes
2121
perl mysql-test-run.pl --timer --force --parallel=auto --comment=innodb_undo_5_64k --vardir=var-innodb-undo-5-64k --experimental=collections/default.experimental --suite=innodb_undo,innodb_zip,innodb --mysqld=--innodb_undo_tablespaces=5 --mysqld=--innodb-page-size=64k --no-skip --max-test-fail=30
2222

23-
# Additional modes for rpl. Multi-Threaded Slave
24-
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_n_mix_MTS --vardir=var-mts-rpl-binlog-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=4 --suite=rpl,rpl_gtid,rpl_nogtid --skip-test=rpl_incompatible_gtids_in_relay_log --no-skip --max-test-fail=30
23+
# Additional modes for rpl. Single-Threaded Slave
24+
perl mysql-test-run.pl --timer --force --parallel=auto --comment=rpl_binlog_n_mix_STS --vardir=var-sts-rpl-binlog-n_mix --mysqld=--binlog-format=mixed --experimental=collections/default.experimental --mysqld=--slave-parallel-workers=0 --suite=rpl,rpl_gtid,rpl_nogtid --no-skip --max-test-fail=30
2525

2626
# Run the suites that are not part of the default - funcs_2, stress, jp, nist
2727
perl mysql-test-run.pl --force --timer --testcase-timeout=60 --parallel=auto --experimental=collections/default.experimental --comment=funcs2 --vardir=var-funcs2 --suite=funcs_2 --no-skip --max-test-fail=30

mysql-test/extra/rpl_tests/rpl_row_001.test

+16-6
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,11 @@ eval CREATE TABLE t1 (n INT) ENGINE=$engine_type;
5353
sync_slave_with_master;
5454
connection master;
5555
RESET MASTER;
56+
5657
connection slave;
57-
STOP SLAVE;
58+
--let $wait_condition=SELECT COUNT(*)=0 from t1
59+
--source include/wait_condition_or_abort.inc
60+
--source include/stop_slave.inc
5861
RESET SLAVE;
5962

6063
connection master;
@@ -68,22 +71,29 @@ while ($1)
6871
}
6972
enable_query_log;
7073
SELECT COUNT(*) FROM t1;
71-
save_master_pos;
74+
--source include/save_master_pos.inc
7275

7376
# Try to cause a large relay log lag on the slave by locking t1
7477
connection slave;
7578
RESET MASTER;
7679
LOCK TABLES t1 READ;
77-
START SLAVE;
80+
81+
--source include/start_slave.inc
82+
--source include/sync_slave_io.inc
83+
7884
UNLOCK TABLES;
79-
sync_with_master;
85+
--let $wait_condition= SELECT count(*) = 0 FROM INFORMATION_SCHEMA.PROCESSLIST WHERE State = 'Waiting for table metadata lock'
86+
--source include/wait_condition.inc
87+
# In valgrind sync a large workload might take long when MTS is enabled
88+
--let $slave_timeout= 1200
89+
--source include/sync_slave_sql_with_io.inc
8090
SELECT COUNT(*) FROM t1;
8191

8292
connection master;
8393
DROP TABLE t1;
8494
CREATE TABLE t1 (n INT);
8595
INSERT INTO t1 VALUES(3456);
86-
sync_slave_with_master;
96+
--source include/sync_slave_sql_with_master.inc
8797
SELECT n FROM t1;
8898

8999
connection master;
@@ -96,4 +106,4 @@ DROP TABLE t1;
96106
--enable_query_log
97107
--echo # mysql.user table restored to original values.
98108

99-
sync_slave_with_master;
109+
--source include/sync_slave_sql_with_master.inc

mysql-test/include/persist_only_variables.sql

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ set @@persist_only.innodb_sort_buffer_size=1048576;
4545
set @@persist_only.innodb_sync_array_size=1;
4646
set @@persist_only.innodb_use_native_aio=1;
4747
set @@persist_only.innodb_write_io_threads=4;
48-
set @@persist_only.log_slave_updates=0;
48+
set @@persist_only.log_slave_updates=1;
4949
set @@persist_only.max_digest_length=1024;
5050
set @@persist_only.metadata_locks_cache_size=1024;
5151
set @@persist_only.metadata_locks_hash_instances=8;

mysql-test/include/show_events.inc

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ if ($binlog_file)
3838
{
3939
if ($is_relay_log)
4040
{
41-
--let $_binlog_file= query_get_value(SHOW SLAVE STATUS, Relay_Log_File, 1)
41+
--source include/rpl_get_end_of_relay_log.inc
42+
--let $_binlog_file= $relay_log_file
4243
}
4344
if (!$is_relay_log)
4445
{

mysql-test/r/mysqld--help-notwin.result

+6-5
Original file line numberDiff line numberDiff line change
@@ -1125,7 +1125,7 @@ The following options may be given as the first argument:
11251125
--slave-parallel-type=name
11261126
Specifies if the slave will use database partitioning or
11271127
information from master to parallelize
1128-
transactions.(Default: DATABASE).
1128+
transactions.(Default: LOGICAL_CLOCK).
11291129
--slave-parallel-workers=#
11301130
Number of worker threads for executing events in parallel
11311131
--slave-pending-jobs-size-max=#
@@ -1134,7 +1134,8 @@ The following options may be given as the first argument:
11341134
master side max_allowed_packet.
11351135
--slave-preserve-commit-order
11361136
Force slave workers to make commits in the same order as
1137-
on the master. Disabled by default.
1137+
on the master. Enabled by default.
1138+
(Defaults to on; use --skip-slave-preserve-commit-order to disable.)
11381139
--slave-rows-search-algorithms=name
11391140
Set of searching algorithms that the slave will use while
11401141
searching for records from the storage engine to either
@@ -1586,10 +1587,10 @@ slave-compressed-protocol FALSE
15861587
slave-exec-mode STRICT
15871588
slave-max-allowed-packet 1073741824
15881589
slave-net-timeout 60
1589-
slave-parallel-type DATABASE
1590-
slave-parallel-workers 0
1590+
slave-parallel-type LOGICAL_CLOCK
1591+
slave-parallel-workers 4
15911592
slave-pending-jobs-size-max 16777216
1592-
slave-preserve-commit-order FALSE
1593+
slave-preserve-commit-order TRUE
15931594
slave-rows-search-algorithms INDEX_SCAN,HASH_SCAN
15941595
slave-skip-errors (No default value)
15951596
slave-sql-verify-checksum TRUE

mysql-test/r/mysqld--help-win.result

+9-8
Original file line numberDiff line numberDiff line change
@@ -447,8 +447,8 @@ The following options may be given as the first argument:
447447
--log-short-format Don't log extra information to update and slow-query
448448
logs.
449449
--log-slave-updates Tells the slave to log the updates from the slave thread
450-
to the binary log. You will need to turn it on if you
451-
plan to daisy-chain the slaves
450+
to the binary log.
451+
(Defaults to on; use --skip-log-slave-updates to disable.)
452452
--log-slow-admin-statements
453453
Log slow OPTIMIZE, ANALYZE, ALTER and other
454454
administrative statements to the slow log if it is open.
@@ -1118,7 +1118,7 @@ The following options may be given as the first argument:
11181118
--slave-parallel-type=name
11191119
Specifies if the slave will use database partitioning or
11201120
information from master to parallelize
1121-
transactions.(Default: DATABASE).
1121+
transactions.(Default: LOGICAL_CLOCK).
11221122
--slave-parallel-workers=#
11231123
Number of worker threads for executing events in parallel
11241124
--slave-pending-jobs-size-max=#
@@ -1127,7 +1127,8 @@ The following options may be given as the first argument:
11271127
master side max_allowed_packet.
11281128
--slave-preserve-commit-order
11291129
Force slave workers to make commits in the same order as
1130-
on the master. Disabled by default.
1130+
on the master. Enabled by default.
1131+
(Defaults to on; use --skip-slave-preserve-commit-order to disable.)
11311132
--slave-rows-search-algorithms=name
11321133
Set of searching algorithms that the slave will use while
11331134
searching for records from the storage engine to either
@@ -1395,7 +1396,7 @@ log-output FILE
13951396
log-queries-not-using-indexes FALSE
13961397
log-raw FALSE
13971398
log-short-format FALSE
1398-
log-slave-updates FALSE
1399+
log-slave-updates TRUE
13991400
log-slow-admin-statements FALSE
14001401
log-slow-slave-statements FALSE
14011402
log-statements-unsafe-for-binlog TRUE
@@ -1583,10 +1584,10 @@ slave-compressed-protocol FALSE
15831584
slave-exec-mode STRICT
15841585
slave-max-allowed-packet 1073741824
15851586
slave-net-timeout 60
1586-
slave-parallel-type DATABASE
1587-
slave-parallel-workers 0
1587+
slave-parallel-type LOGICAL_CLOCK
1588+
slave-parallel-workers 4
15881589
slave-pending-jobs-size-max 16777216
1589-
slave-preserve-commit-order FALSE
1590+
slave-preserve-commit-order TRUE
15901591
slave-rows-search-algorithms INDEX_SCAN,HASH_SCAN
15911592
slave-skip-errors (No default value)
15921593
slave-sql-verify-checksum TRUE

0 commit comments

Comments
 (0)