From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp37.i.mail.ru (smtp37.i.mail.ru [94.100.177.97]) (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 E74414696C3 for ; Thu, 16 Apr 2020 15:37:28 +0300 (MSK) Date: Thu, 16 Apr 2020 15:37:27 +0300 From: Kirill Yukhin Message-ID: <20200416123727.qgukpjqvhhegoc5v@tarantool.org> References: <20200416120658.33777-1-sergepetrenko@tarantool.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200416120658.33777-1-sergepetrenko@tarantool.org> Subject: Re: [Tarantool-patches] [PATCH] relay: move relay_schedule_pending_gc before status update List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Serge Petrenko Cc: tarantool-patches@dev.tarantool.org, v.shpilevoy@tarantool.org Hello, On 16 апр 15:06, Serge Petrenko wrote: > relay_schedule_pending_gc() is executed after relay status update, > which made perfect sense before we've introduced local spaces rework, making > local space operations use a special instance id: 0. > Relay status update is performed only when the remote instance has > reported a bigger vclock, than its previous one. However, we may have an > entire WAL file filled with local space changes, in which case the > changes won't be transmitted to replica, and it will report the same > vclock as before, postponing the scheduled gc until a non-local row is > created on master. > > Fix this by reordering relay_schedule_pending_gc() and relay status > update. In case nothing new is added to pending_gc queue and replica > clock is not updated, relay_schedule_pending_gc() will exit on the first > loop iteration, so it doesn't add an overhead. > > Also make relay_schedule_pending_gc() use vclock_compare_ignore0() instead > of plain vclock_compare(). > > Follow-up #4114 > --- > This code was present in v5 of the patchset regarding local space replication > rework, but I accidentally threw it away during the review. Sorry. > The letter was "[PATCH v5 2/4] replication: hide 0-th vclock components in > replication responses" > > Branch: https://github.com/tarantool/tarantool/tree/sp/relay-gc-fix LGTM. I've checked your patch into 2.3 and master. -- Regards, Kirill Yukhin