[tarantool-patches] Re: [PATCH 3/3] Introduce storage reload evolution

Alex Khatskevich 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/
>> 11-12:
>> 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 
> everywhere
> 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
> 1.2.4.
>
>
> 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 
this patch.





More information about the Tarantool-patches mailing list