[tarantool-patches] Re: [PATCH 3/3] Introduce storage reload evolution
avkhatskevich at tarantool.org
Sat Jul 21 02:58:33 MSK 2018
>>> 11. Just use a symbolic link to the existing storage_1_a. Same
>>> for other storages.
>>> 12. You do not need a new test suite for one storage test. Please,
>>> put it into test/storage/
>> I have modified storage_1_a to change luapath.
>> It is important to change path here, because the default Vshard
>> initialization is performed here.
> 1. Then please explain why do you need in storage_1_a.lua
> * two "require('fio')";
> * '-- Check if we are running under test-run';
> * 'names' table, 'replicasets' table;
> * 'box.once("testapp:schema:1", function()';
> * ...many other things.
> If you do not need them, then please, cleanup your storage_1_a.lua
> and extract wait_rebalancer_state into test utils since it is now
> duplicated in storage/ and reload_evolution/ tests.
I have reused some code. Extra commit was added.
>>>> diff --git a/vshard/storage/init.lua b/vshard/storage/init.lua
>>>> index bf560e6..1740c98 100644
>>>> --- a/vshard/storage/init.lua
>>>> +++ b/vshard/storage/init.lua
>>>> @@ -105,6 +110,11 @@ if not M then
>>>> -- a destination replicaset must drop already received
>>>> -- data.
>>>> rebalancer_sending_bucket = 0,
>>>> + ------------------------- Reload -------------------------
>>>> + -- Version of the loaded module. This number is used on
>>>> + -- reload to determine which upgrade scripts to run.
>>>> + reload_evolution_version = reload_evolution.version,
>>> 13. Use 'version' name.
>> But it is not a version. Version is a git tag.
>> We already have module_version and git tag. To make everything clear
>> I would like to
>> name the variable in that or similar way.
> 2. 'git tag' works only when you have git. But when you install vshard
> from a package,
> the system can have no git. Moreover, it contradicts with tarantool
> versioning, that
> exposes the actual version via _schema and box.info.
> So please, use real version for this member and name it 'version'. You
> can find
> the code to extract, store and compare versions in box/lua/upgrade.lua.
> 3. It is not the same as git tag. We can add here a new version and
> tag it
> later, like it is done in tarantool, when we use the new version
> in the new code, but release it when ready.
> For example, now vshard has version 1.2.3. We change M and set version in
> evolution of M in the 1.2.4 constant. When 1.2.4 is ready, we do git tag
> 4. You are trying to make you life easier, but do not think about
> users. It is not useful when you are not able to get the actual version,
> because you can not use git, or you see the strange versions like 1,
> 2, 3, 4 ...
> Nobody uses natural numbers as versions. It is weird.
> I think, we should consult Kostja N. for this though.
After the discussion and implementation I will create another tread for
More information about the Tarantool-patches