← Back to team overview

maria-developers team mailing list archive

Need suggestions for benchmarking MDEV-6676 parallel replication


Hi Axel,

I'd like to ask your advice on some benchmarking of MDEV-6676.

MDEV-6676 is about extending in-order parallel replication to be significantly
more aggressive, and potentially get a _lot_ more parallelism on the slave.
The basic idea is to just try to run _everything_ in parallel. If there is a
conflict, the code will roll back the erroneous transaction and retry it, this
time not in parallel.

I have run a basic sysbench 0.5 OLTP on my laptop, and results were promising.
However, I need something better than that. My main problem is that often when
I run write-load benchmarks, the bottleneck is InnoDB log write or purge, or
something like that. So the load does not really scale with multiple threads,
even on the master, and parallel replication is not really that useful even if
perfectly implemented.

So do you have a suggestion for a write-load benchmark that scales well for
medium concurrency, like 8-32 threads or something like that? And for a
machine on which to run it?

The best benchmark I think would be one that is I/O bound on a working set
that is not in memory, on a machine with a disk subsystem that has good
throughput at high concurrency. Because this should resemble the real-world
use cases where parallel replication is most needed. Do you have any
experience on running such benchmarks, and do we have any machines that could
be used? Often the benchmarks I see in blogs are in-memory...

Or do you have another suggestion?


 - Kristian.