Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
To: tarantool-patches@dev.tarantool.org, olegrok@tarantool.org,
	yaroslav.dynnikov@tarantool.org
Subject: [Tarantool-patches] [PATCH v2 vshard 0/2] storage: introduce upgrade strategy
Date: Wed, 25 Mar 2020 00:44:45 +0100	[thread overview]
Message-ID: <cover.1585093031.git.v.shpilevoy@tarantool.org> (raw)

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

-- 
2.21.1 (Apple Git-122.3)

             reply	other threads:[~2020-03-24 23:44 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-24 23:44 Vladislav Shpilevoy [this message]
2020-03-24 23:44 ` [Tarantool-patches] [PATCH v2 vshard 1/2] " Vladislav Shpilevoy
2020-03-26 15:46   ` Oleg Babin
2020-03-24 23:44 ` [Tarantool-patches] [PATCH v2 vshard 2/2] storage: introduce vshard.storage._call() Vladislav Shpilevoy
2020-03-28 18:04 ` [Tarantool-patches] [PATCH v2 vshard 0/2] storage: introduce upgrade strategy Vladislav Shpilevoy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1585093031.git.v.shpilevoy@tarantool.org \
    --to=v.shpilevoy@tarantool.org \
    --cc=olegrok@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=yaroslav.dynnikov@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH v2 vshard 0/2] storage: introduce upgrade strategy' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox