← Back to team overview

maria-developers team mailing list archive

Re: [Commits] 7cabdc461b2: MDEV-6860 Parallel async replication hangs on a Galera node


sachin.setiya@xxxxxxxxxxx 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.

Follow ups