[Tarantool-patches] [PATCH] applier: follow vclock to the last tx row

Kirill Yukhin kyukhin at tarantool.org
Mon Apr 27 13:22:06 MSK 2020


Hello,

On 22 апр 21:28, Serge Petrenko wrote:
> Since the introduction of transaction boundaries in replication
> protocol, appliers follow replicaset.applier.vclock to the lsn of the
> first row in an arrived batch. This is enough and doesn't lead to errors
> when replicating from other instances, respecting transaction boundaries
> (instances with version 2.1.2 and up). However, if there's a 1.10
> instance in 2.1.2+ cluster, it sends every single tx row as a separate
> transaction, breaking the comparison with replicaset.applier.vclock and
> making the applier apply part of the changes, it has already applied
> when processing a full transaction coming from another 2.x instance.
> Such behaviour leads to ER_TUPLE_FOUND errors in the scenario described
> above.
> In order to guard from such cases, follow replicaset.applier.vclock to
> the lsn of the last row in tx.
> 
> Closes #4924
> ---
> https://github.com/tarantool/tarantool/issues/4924
> https://github.com/tarantool/tarantool/tree/sp/gh-4924-applier-duplicate-key

I've checked your patch into 2.3 and master.

--
Regards, Kirill Yukhin


More information about the Tarantool-patches mailing list