On Tuesday, February 18, 2020 8:37:03 PM MSK Serge Petrenko wrote: Hi! Thanks for the patch. I am pretty sure replica should be able to apply all replication stream transaction in a proper way without any reliance on a master correctness. Or signal an error if this is impossible. I am suggesting such logic because a replica has the complete information about it own at the moment. This includes local vclock, cfg, all existing appliers state and incoming streams. WBR > https://github.com/tarantool/tarantool/issues/4739 > https://github.com/tarantool/tarantool/tree/sp/gh-4739-vclock-assert-v3 > > Changes in v3: > - review fixes as per review from Vlad > - instead of skipping rows on replica side, > do it on master side, by patching recovery > to silently follow rows coming from a certain > instance. > > Changes in v2: > - review fixes as per review from Kostja > > Serge Petrenko (4): > box: expose box_is_orphan method > recovery: allow to ignore rows coming from a certain instance > replication: do not relay rows coming from a remote instance back to > it > wal: warn when trying to write a record with a broken lsn > > src/box/applier.cc | 2 +- > src/box/box.cc | 15 +++++++++++---- > src/box/box.h | 3 +++ > src/box/iproto_constants.h | 1 + > src/box/recovery.cc | 12 +++++++++++- > src/box/recovery.h | 7 ++++++- > src/box/relay.cc | 14 +++++++++++--- > src/box/relay.h | 3 ++- > src/box/wal.c | 17 ++++++++++++++--- > src/box/xrow.c | 18 +++++++++++++++--- > src/box/xrow.h | 26 ++++++++++++++++---------- > 11 files changed, 91 insertions(+), 27 deletions(-)