MySQL Parallel Replication in 5.7 [LOGICAL_CLOCK] breaking
I was experimenting with parallel replication in MySQL 5.7.24. I went through your blogs also.
I have few doubts regarding parallel replication to which I am unable to find answers since few weeks. Please don't mind my indirect approach. I thought that fb messenger could be the fastest possible way to contact you.
So the scenario is as follows:
I have a database which has hundreds of tables. Earlier I was using MySQL 5.6.40 and now I am migrating to MySQL 5.7.24 for taking advantage of parallel replication.
In my current test setup, I have one MySQL 5.7.24 master and it's native read replica (MySQL 5.7.24).
I have the following parameters set on the master:
binlog_group_commit_sync_delay=50 micro-seconds
binlog_order_commits=1
Following are the parameters that I have on the slave:
slave_preserve_commit_order=1
slave_parallel_type=LOGICAL_CLOCK
slave_parallel_workers=10
log_slave_updates=1
--log-bin enabled
To my surprise, when I started replication, I saw that only one mysql slave thread was running and rest of the threads were showing me 'Waiting for an event from Coordinator".
I got the above-mentioned results by watching the below mentioned query with watch period of 0.1 seconds:select * from performance_schema.threads where name="thread/sql/slave_worker";
.
However, when I changed binlog_order_commits=>0
on master, I actually saw all the threads running and executing different queries.
I want to know whether the above-mentioned parameters (including binlog_order_commits=0) are correct for parallel replication to happen.
Can I go forward with binlog_order_commits=0 on master?
What impact does binlog_order_commits have when it is disabled?
Also, as per the MySQL documentation, --log-bin and --log-slave-updates are to be enabled. I don't understand why --log-bin is required on slave when one is not doing chain replication.
Thanks for your time.
Looking forward to your earliest response.
Please sign in to leave a comment.
Comments
0 comments