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

Kirill Yukhin kyukhin at tarantool.org
Mon Apr 27 13:39:01 MSK 2020


On 27 апр 13:22, Kirill Yukhin wrote:
> 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.

And 2.4

--
Regards, Kirill Yukhin


More information about the Tarantool-patches mailing list