[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