[Tarantool-patches] [PATCH v3 2/4] recovery: allow to ignore rows coming from a certain instance
Konstantin Osipov
kostja.osipov at gmail.com
Wed Feb 19 14:27:10 MSK 2020
* Serge Petrenko <sergepetrenko at tarantool.org> [20/02/19 13:32]:
>
>
> > 19 февр. 2020 г., в 13:11, Konstantin Osipov <kostja.osipov at gmail.com> написал(а):
> >
> > * Serge Petrenko <sergepetrenko at tarantool.org> [20/02/19 12:36]:
> >> I mean taking replica clock from a subscribe request and setting replica_clock[replica->id] = INT64_MAX.
> >> This is done on master in relay_subscribe() called from box_process_subscribe(). Then relay recovery is initialized
> >> with this vclock making recovery skip rows coming from the replica itself.
> >
> > Why is this logic done on master? Why can't you send the right
> > vclock from replica?
> >
>
>
> Cos this strange vclock will be used to initialize gc consumer,
> and this gc consumer will be ordered by that vclock signature,
> which will overflow.
I think there was a patch from Georgy that stops ordering GC
consumers by their signature, and uses vclock_compare instead?
Can it be pushed first?
In any case, your "special flag" is extremely cumbersome. Better
introduce a subscription mask to IPROTO_SUBSCRIBE, we need it for
https://github.com/tarantool/tarantool/issues/3294 anyway.
> Anyway, let me send the patch first. This is the same problem
> in both cases, when the logic you propose works either on master or
> on replica side.
--
Konstantin Osipov, Moscow, Russia
https://scylladb.com
More information about the Tarantool-patches
mailing list