From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpng3.m.smailru.net (smtpng3.m.smailru.net [94.100.177.149]) (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 1C6B14696C3 for ; Sat, 28 Mar 2020 21:04:48 +0300 (MSK) From: Vladislav Shpilevoy References: Message-ID: <62a577e2-3d2e-5683-16a8-da0f1f6ad80e@tarantool.org> Date: Sat, 28 Mar 2020 19:04:46 +0100 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH v2 vshard 0/2] storage: introduce upgrade strategy List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: tarantool-patches@dev.tarantool.org, olegrok@tarantool.org, yaroslav.dynnikov@tarantool.org Pushed to master. On 25/03/2020 00:44, Vladislav Shpilevoy wrote: > The patchset introduces vshard.storage._call() API - one access point for all > internal functions. It allows to hide them from the public usage behind one > function, and to add/remove internal functions on read-only replicas using > restart or hot code reload. The new call is going to be firstly used by the new > discovery, which currently suffers from too long tx thread usage when fetches > millions of buckets. The existing buckets_discovery() function can't be changed > because it is public. So a new will be added inside _call(). > > To make it possible to introduce _call() and remove old functions the patchset > describes and implements upgrade strategy, which was not really well thought > through and developed until now. > > Branch: http://github.com/tarantool/vshard/tree/gerold103/gh-227-service-call > Issue: https://github.com/tarantool/vshard/issues/227 > > Changes in v2: > - Added upgrade atomicity compatible with 1.9 and 1.10 (no transactional DDL); > - New unit/upgrade.test.lua test. > > Vladislav Shpilevoy (2): > storage: introduce upgrade strategy > storage: introduce vshard.storage._call() > > test/unit/box2.lua | 1 + > test/unit/upgrade.result | 223 ++++++++++++++++++++++++++++ > test/unit/upgrade.test.lua | 134 +++++++++++++++++ > test/upgrade/box.lua | 9 ++ > test/upgrade/storage_1_a.lua | 11 ++ > test/upgrade/storage_1_b.lua | 1 + > test/upgrade/storage_2_a.lua | 1 + > test/upgrade/storage_2_b.lua | 1 + > test/upgrade/suite.ini | 7 + > test/upgrade/upgrade.result | 269 ++++++++++++++++++++++++++++++++++ > test/upgrade/upgrade.test.lua | 98 +++++++++++++ > vshard/storage/init.lua | 237 ++++++++++++++++++++++++++++-- > 12 files changed, 983 insertions(+), 9 deletions(-) > create mode 120000 test/unit/box2.lua > create mode 100644 test/unit/upgrade.result > create mode 100644 test/unit/upgrade.test.lua > create mode 100644 test/upgrade/box.lua > create mode 100644 test/upgrade/storage_1_a.lua > create mode 120000 test/upgrade/storage_1_b.lua > create mode 120000 test/upgrade/storage_2_a.lua > create mode 120000 test/upgrade/storage_2_b.lua > create mode 100644 test/upgrade/suite.ini > create mode 100644 test/upgrade/upgrade.result > create mode 100644 test/upgrade/upgrade.test.lua >