Branching this off from
MDEV-15173 (see that MDEV for all the details)
Parallel slave (slave_parallel_mode=conservative does not provide a lot of speedup over single-threaded slave when log_slave_updates=OFF.
When log_slave_updates=ON the performance is acceptable.
Summary of the investigations from
The reason is that with log_slave_updates=ON the server employs XA between the storage engine the binlog:
- Prepare calls sync their effects to disk
- They are are done in parallel, so they can take advantage of the group commit.
- Commit calls are done one-after-another in order to commit in the master's binlog order
- but they dont sync to disk and so are fast.
With log_slave_updates=OFF :
- XA is not used (as MyRocks is the only participant)
- commit() calls are done one-after-another in the binlog order
- The storage engine is instructed to sync.
- The above two together mean that MyRocks' group commit does not function.