From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-f196.google.com (mail-lj1-f196.google.com [209.85.208.196]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 6C267469719 for ; Sat, 22 Feb 2020 23:21:38 +0300 (MSK) Received: by mail-lj1-f196.google.com with SMTP id a13so5794769ljm.10 for ; Sat, 22 Feb 2020 12:21:38 -0800 (PST) From: Georgy Kirichenko Date: Sat, 22 Feb 2020 23:21:35 +0300 Message-ID: <2175956.ElGaqSPkdT@localhost> In-Reply-To: References: MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart4542951.GXAFRqVoOG"; micalg="pgp-sha256"; protocol="application/pgp-signature" Subject: Re: [Tarantool-patches] [PATCH v3 0/4] replication: fix applying of rows originating from local instance List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org, Serge Petrenko Cc: v.shpilevoy@tarantool.org --nextPart4542951.GXAFRqVoOG Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" 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(-) --nextPart4542951.GXAFRqVoOG Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part. Content-Transfer-Encoding: 7Bit -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEni2K8y45nFEfidm2g0fcwO+Ma8AFAl5RjU8ACgkQg0fcwO+M a8DzWwf+JGnvpFNiW1frdyXtf2yTU1DqMO51+p0y5lxYY+H6Tr5IkFdxglxaBPHL q35QXDblIvjo61RGFI1eWM8wi0Ctn4q/00KzjAtvvLY0Avu4IyhrfLwchSqoFQU3 F9EzjBCx3QHTRFFGUpW+T3IIwpRRtKXe2hPKCfeyh81UDM0oSuh7XJmlr/RkNrH6 2LYg5KAkAZBstDiozwugZH0sXn3z7o9jxpnC+0OBghbAqTUzz9esdOR2m1C6FdUO Jt9DCSjmqQp2e0iSBTEr8w8ebiw6pmj2YtX9IXSCMT0dAYes5cWa5ONFt88fy5Pp U/vlHwGxhcJe4NH0lbygi9L7T5+s0Q== =o50I -----END PGP SIGNATURE----- --nextPart4542951.GXAFRqVoOG--