Tarantool development patches archive
 help / color / mirror / Atom feed
From: Oleg Babin <olegrok@tarantool.org>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>,
	tarantool-patches@dev.tarantool.org,
	yaroslav.dynnikov@tarantool.org
Subject: Re: [Tarantool-patches] [PATCH vshard 1/2] storage: introduce upgrade strategy
Date: Mon, 23 Mar 2020 09:35:02 +0300	[thread overview]
Message-ID: <d9cd3502-b3fc-c09f-2c23-e6e9ebeb883b@tarantool.org> (raw)
In-Reply-To: <ecaf3a2c-cbdc-12bf-550a-7804e501daae@tarantool.org>

Hi! Thanks for the changes! One nit and LGTM.

On 22/03/2020 22:12, Vladislav Shpilevoy wrote:
> But for 0.1.16.0 the atomicity is possible, I added
> box.begin/commit/rollback.
> 
> -    for _, handler in ipairs(handlers) do
> +    for _, handler in ipairs(schema_upgrade_handlers) do
>           local next_version = handler.version
>           if schema_compare_versions(next_version, version) > 0 then
>               local next_version_str = table.concat(next_version, '.')
>               log.info("Upgrade vshard to {%s}", next_version_str)
> -            handler.func(username, password)
> +            local ok, err = pcall(handler.func, username, password)
> +            if not ok then
> +                log.info("Couldn't upgrade to {%s}: %s", next_version_str, err)

Seems that you've missed box.rollback here. And I think that it should 
be something like "if box.is_in_txn() then box.rollback() end"

I'm not sure but is it possible to drop last xlogs for user and start to 
use previous version of schema (and vshard version as well) as 
workaround in case of "fatal error"?

  reply	other threads:[~2020-03-23  6:35 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-21 18:59 [Tarantool-patches] [PATCH vshard 0/2] vshard upgrade and _call Vladislav Shpilevoy
2020-03-21 18:59 ` [Tarantool-patches] [PATCH vshard 1/2] storage: introduce upgrade strategy Vladislav Shpilevoy
2020-03-22  5:05   ` Oleg Babin
2020-03-22 19:12     ` Vladislav Shpilevoy
2020-03-23  6:35       ` Oleg Babin [this message]
2020-03-23 22:32         ` Vladislav Shpilevoy
2020-03-24  4:32           ` Oleg Babin
2020-03-24 15:21   ` Yaroslav Dynnikov
2020-03-24 23:44     ` Vladislav Shpilevoy
2020-03-21 18:59 ` [Tarantool-patches] [PATCH vshard 2/2] storage: introduce vshard.storage._call() Vladislav Shpilevoy
2020-03-22  5:08   ` Oleg Babin
2020-03-22 19:13     ` Vladislav Shpilevoy
2020-03-23  6:42       ` Oleg Babin
2020-03-23 22:32         ` 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=d9cd3502-b3fc-c09f-2c23-e6e9ebeb883b@tarantool.org \
    --to=olegrok@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --cc=yaroslav.dynnikov@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH vshard 1/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