From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp60.i.mail.ru (smtp60.i.mail.ru [217.69.128.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 62BC9469719 for ; Wed, 19 Feb 2020 12:35:23 +0300 (MSK) From: Serge Petrenko Message-Id: <249D8BCD-BB40-43A9-B7FF-3A084991C3A1@tarantool.org> Content-Type: multipart/alternative; boundary="Apple-Mail=_C6EAC59D-1CC4-42E6-B9A8-C45B8F463587" Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3608.40.2.2.4\)) Date: Wed, 19 Feb 2020 12:35:21 +0300 In-Reply-To: <20200219090251.GC6538@atlas> References: <257cb279bd1b62ef6ff98aa4fa7226ba1bf3b2d0.1582046958.git.sergepetrenko@tarantool.org> <20200218190324.GB20569@atlas> <93920A98-9B17-43AB-86C2-494161FC032B@tarantool.org> <20200219085254.GB6538@atlas> <1C823375-D749-4A76-960D-2B45FD987A80@tarantool.org> <20200219090251.GC6538@atlas> Subject: Re: [Tarantool-patches] [PATCH v3 2/4] recovery: allow to ignore rows coming from a certain instance List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Konstantin Osipov , Vladislav Shpilevoy , Alexander Turenko Cc: tarantool-patches@dev.tarantool.org --Apple-Mail=_C6EAC59D-1CC4-42E6-B9A8-C45B8F463587 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > 19 =D1=84=D0=B5=D0=B2=D1=80. 2020 =D0=B3., =D0=B2 12:02, Konstantin = Osipov =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB= (=D0=B0): >=20 > * Serge Petrenko > [20/02/19 12:01]: >>=20 >>=20 >>=20 >>> 19 =D1=84=D0=B5=D0=B2=D1=80. 2020 =D0=B3., =D0=B2 11:52, Konstantin = Osipov =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB= (=D0=B0): >>>=20 >>> * Serge Petrenko [20/02/19 11:45]: >>>>> This is a strange way to mute rows from self. Why not set vclock >>>>> component to infinity as I suggested multiple times? Why not >>>>> respond to me with objection if my suggestion can not be done? >>>>=20 >>>> I responded with a patch, so now we can discuss both your and my = suggestions. >>>=20 >>> No, we can't. You responded with a patch for your suggestion, but >>> not for mine. So we compare apples and oranges here. Just like >>> with Ilya's patch, which only half way captured my suggestion in >>> his "alternatives". >>>=20 >>> In the end I'm not even sure you got it right. >>=20 >>=20 >>=20 >>>=20 >>>> If I understood you correctly, you suggested to set replica self = lsn to infinity >>>> (on master side), so that recovery on masters side would skip = replicas rows. >>>>=20 >>=20 >> Does it look like I got it right from my answer? >=20 > I don't understand. For example, what do you mean by setting it on > the master? You were supposed to set it on the replica, when > sending a SUBSCRIBE request to the master. I mean taking replica clock from a subscribe request and setting = replica_clock[replica->id] =3D 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. I=E2=80=99m starting to think that you want me to mangle only with = replicaset.applier.vclock Sorry if I missed it in the very beginning of our discussion. > Honestly, your English isn't perfect, we don't share the same > vocabulary/terms, so it's hard to see what went wrong without a > patch. Ok, I=E2=80=99ll send a patch soon. >=20 >=20 >=20 > --=20 > Konstantin Osipov, Moscow, Russia > https://scylladb.com -- Serge Petrenko sergepetrenko@tarantool.org --Apple-Mail=_C6EAC59D-1CC4-42E6-B9A8-C45B8F463587 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

19 =D1=84=D0=B5=D0=B2=D1=80. 2020 =D0=B3., =D0=B2 12:02, = Konstantin Osipov <kostja.osipov@gmail.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0= =B0=D0=BB(=D0=B0):

* Serge = Petrenko <sergepetrenko@tarantool.org> [20/02/19 12:01]:



19 =D1=84=D0=B5=D0=B2=D1=80= . 2020 =D0=B3., =D0=B2 11:52, Konstantin Osipov <kostja.osipov@gmail.com> =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0= =B0=D0=BB(=D0=B0):

* Serge Petrenko <sergepetrenko@tarantool.org> [20/02/19 11:45]:
This is a strange way to mute rows from self. Why not set = vclock
component to infinity as I suggested multiple = times? Why not
respond to me with objection if my = suggestion  can not be done?

I responded with a patch, so now we can discuss both your and = my suggestions.

No, we can't. = You responded with a patch for your suggestion, but
not = for mine. So we compare apples and oranges here. Just like
with Ilya's patch, which only half way captured my suggestion = in
his "alternatives".

In the = end I'm not even sure you got it right.




If I = understood you correctly, you suggested to set replica self lsn to = infinity
(on master side), so that recovery on masters = side would skip replicas rows.


Does it look like I = got it right from my answer?

I don't understand. For example, = what do you mean by setting it on
the master? You were supposed to set it on the replica, = when
sending a = SUBSCRIBE request to the master.

I mean taking replica clock from a subscribe = request and setting replica_clock[replica->id] =3D = 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.

I=E2=80=99m = starting to think that you want me to mangle only with = replicaset.applier.vclock
Sorry if I missed it in the very = beginning of our discussion.

Honestly, your English isn't perfect, we don't share the = same
vocabulary/terms, so it's hard to see what went wrong without = a
patch.

Ok, I=E2=80=99ll send a patch soon.



-- 
Konstantin Osipov, Moscow, = Russia
https://scylladb.com


--
Serge = Petrenko


= --Apple-Mail=_C6EAC59D-1CC4-42E6-B9A8-C45B8F463587--