I’m comparing the performance of XtraDB Cluster with XtraDB using sysbench. What I’ve seen makes me think that wsrep is single-threaded.
For example, I run a sysbench oltp test on the database host. The results are identical for XtraDB (with no replication) and a single cluster node with ‘wsrep_on = OFF’. In both cases, the total execution time for a mixed read/write workload falls from 400 sec to 100 sec as the number of (sysbench) threads is increased from 1 to 8.
However, when ‘wsrep_on = ON’, the total execution time for a single node remain almost constant as threads are added. There is only a small decrease from 400 to 360 sec when a second (sysbench) thread is added but no further change with additional threads.
This is an artificial test and I’m not proposing to run a single node cluster! However, it seems to show that processes which XtraDB can process in parallel, a single node XtraDB Cluster (with wsrep_on = ON) processes in serial. Can anyone confirm that or is there some other explanation?