[Tarantool-patches] [PATCH v5 0/4] replication: fix applying of rows originating from local instance

Serge Petrenko sergepetrenko at tarantool.org
Fri Feb 28 11:34:41 MSK 2020


https://github.com/tarantool/tarantool/issues/4739
https://github.com/tarantool/tarantool/tree/sp/gh-4739-vclock-assert-v4

@ChangeLog
 - fix possible vclock ordering violations in
   master-master replication when one of the
   masters restarts (gh-4739)

Changes in v5:
 - review fixes as per reviews from Vlad and Kostja
 - added a test
 - applied Vlads test amendments
 - added a changelog

Changes in v4:
 - move row skipping logic from recovery to relay
 - encode a list of instances whose rows to skip
   in SUBSCRIBE request insead of encoding
   is_orhpan status

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
  wal: warn when trying to write a record with a broken lsn
  replication: implement an instance id filter for relay
  replication: do not relay rows coming from a remote instance back to
    it

 src/box/applier.cc                            |  7 +-
 src/box/box.cc                                | 13 ++-
 src/box/box.h                                 |  3 +
 src/box/iproto_constants.h                    |  1 +
 src/box/relay.cc                              | 15 +++-
 src/box/relay.h                               |  3 +-
 src/box/wal.c                                 | 20 ++++-
 src/box/xrow.c                                | 40 ++++++++-
 src/box/xrow.h                                | 36 +++++---
 src/lib/core/cbus.h                           |  7 ++
 src/lib/core/errinj.h                         |  3 +-
 test/box/errinj.result                        |  1 +
 test/replication/gh-4739-vclock-assert.result | 88 +++++++++++++++++++
 .../gh-4739-vclock-assert.test.lua            | 36 ++++++++
 test/replication/suite.cfg                    |  1 +
 test/replication/suite.ini                    |  2 +-
 16 files changed, 250 insertions(+), 26 deletions(-)
 create mode 100644 test/replication/gh-4739-vclock-assert.result
 create mode 100644 test/replication/gh-4739-vclock-assert.test.lua

-- 
2.21.1 (Apple Git-122.3)



More information about the Tarantool-patches mailing list