Bug #91016 mysql semi-sync replication issue
Submitted: 25 May 2018 2:56 Modified: 28 May 2018 16:13
Reporter: Eun Byul Joe Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.7.22 OS:CentOS (7.3)
Assigned to: Bogdan Kecman CPU Architecture:Any

[25 May 2018 2:56] Eun Byul Joe
Description:
mysql semi-sync replication 

MASTER/SLAVE

rpl_semi_sync_master_timeout issue

Why is it different depending on the setting?

Simple query speed is different!

can not understand!

How to repeat:
query 1)

mysql>set global rpl_semi_sync_master_timeout=1000;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (1.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (1.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (1.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (1.01 sec)

=================================================

query 2)

mysql>set global rpl_semi_sync_master_timeout=100;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.11 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.10 sec)

===================================================

query 3)

mysql> set global rpl_semi_sync_master_timeout=500;
Query OK, 0 rows affected (0.00 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.01 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.51 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.50 sec)

mysql> insert into test (test) values ('test');
Query OK, 1 row affected (0.51 sec)
[25 May 2018 5:10] Eun Byul Joe
my.cnf 

#### Replication ###############################################

rpl_semi_sync_master_enabled = 1                # semi-sync master
rpl_semi_sync_slave_enabled = 1                 # semi-sync slave
rpl_semi_sync_master_timeout = 1000               #default=10000(10s)

slave_parallel_type = LOGICAL_CLOCK             # MySQL 5.7
slave_parallel_workers = 2                             # Thread
slave_exec_mode = IDEMPOTENT
slave_preserve_commit_order = ON
slave_type_conversions = ALL_NON_LOSSY
slave_rows_search_algorithms = 'INDEX_SCAN,HASH_SCAN'

sync-master-info = 1000
sync-relay-log = 1000

slave_net_timeout=60                                    # default=3600
slave_compressed_protocol = 1

master_info_repository = TABLE
relay_log_info_repository = TABLE
relay_log_recovery = ON

binlog_row_image = minimal                              # default FULL
binlog_rows_query_log_events = ON               # default OFF
binlog_checksum = NONE

log_slave_updates = 1
#############################################################
[28 May 2018 16:13] Bogdan Kecman
Hi,

This is not a bug. Feel free to contact MySQL Support team with regards to understanding of mysql performance and to get help with how to best tune it.

best regards
Bogdan