sachin.setiya@mariadb.com writes:
revision-id: 7cabdc461b24fdebe599799d7964efa4b53815e3 (mariadb-10.1.39-91-g7cabdc461b2)
MDEV-6860 Parallel async replication hangs on a Galera node
Wait for previous commit beore preparing next transation for galera
diff --git a/sql/rpl_parallel.cc b/sql/rpl_parallel.cc index 8fef2d66635..7d38c36b840 100644 --- a/sql/rpl_parallel.cc +++ b/sql/rpl_parallel.cc @@ -1181,7 +1181,7 @@ handle_rpl_parallel_thread(void *arg) before, then wait now for the prior transaction to complete its commit. */ - if (rgi->speculation == rpl_group_info::SPECULATE_WAIT && + if ((rgi->speculation == rpl_group_info::SPECULATE_WAIT || WSREP_ON) && (err= thd->wait_for_prior_commit()))
Ouch! That's killing _all_ parallel replication when WSREP_ON :-/ Do you really need to do this? It seems quite a restriction for replicating to Galera if parallel replication is not allowed. (I wonder if this isn't just another symptom of the underlying problem that Galera has never been integrated properly into MariaDB and the group commit algorithm / transaction master?). But if the goal is to disable parallel replication in Galera, then you shouldn't do this, it will just confuse/disappoint users, and it will be slower than just using single-threaded replication. Instead, give an error if parallel replication and Galera is enabled at the same time, so users will know of the restriction. - Kristian.