I have a master with 128 threads and a slave with 32 parallel slave workers.
Firstly I used dafault variable of threadpool, thread_handling = one-thread-per-connection
TPS of master about 3800, slave about 2500 to 3000.
when I show processlist, 32 slave workers are running, though waiting for transaction.
then I want to improve the slave replication speed, then set thread_handling= pool-of-threads.(to reduce the cost of creating and destroying threads)
however when I show processlist, only one slave worker is running, other 31 slave workers are in status "waiting for work from sql thread".
The TPS of slave fall from 2500 to 70.
I was wondering if there is some variable fault that I ignored?
my parameters in slave:
innodb_flush_log_at_trx_commit = 2
sync_binlog = 0
thread_handling = pool-of-threads
I also have thread_handling = pool-of-threads in my master but the concurrency of master is even better (higher TPS , 4400 after enabling threadpool ,compared with 3800 by one-thread-per-connection)