From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-f195.google.com (mail-lj1-f195.google.com [209.85.208.195]) (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 105BB469719 for ; Wed, 19 Feb 2020 14:27:12 +0300 (MSK) Received: by mail-lj1-f195.google.com with SMTP id a13so26654774ljm.10 for ; Wed, 19 Feb 2020 03:27:12 -0800 (PST) Date: Wed, 19 Feb 2020 14:27:10 +0300 From: Konstantin Osipov Message-ID: <20200219112710.GC9945@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> <249D8BCD-BB40-43A9-B7FF-3A084991C3A1@tarantool.org> <20200219101141.GA9945@atlas> <5AFD65D5-F667-4632-8151-17A123558EDA@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5AFD65D5-F667-4632-8151-17A123558EDA@tarantool.org> 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: Serge Petrenko Cc: tarantool-patches@dev.tarantool.org, Vladislav Shpilevoy * Serge Petrenko [20/02/19 13:32]: > > > > 19 февр. 2020 г., в 13:11, Konstantin Osipov написал(а): > > > > * Serge Petrenko [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