[Tarantool-patches] [PATCH] vinyl: prohibit vinyl_level_size_ratio less than two

Maxim Kulis bokuno at picodata.io
Tue Feb 4 03:27:20 MSK 2020


Hi!

> Put a link to the issue below '---' delimiter next time.

Ok!

> Please, add a brief explanation to the commit message and then patch will
> be OK to push. Thanks.

When vinyl_run_size_ratio less then 2, LSM-tree could work incorrect.

For example:
Suppose the L0 size is 100Mb, the ratio of run sizes at each LSM-tree
level is 1.5 and there can be no more than 2 runs per level (the variable
vinyl_run_count_per_level). After the first 3 dumps, the disk will contain
3 runs of 100 Mb at L1. Let the dump contain many delete operations, so
the runs will be compacted into a single 200 Mb run. It will be moved to L2.
The next 3 dumps will produce 300 Mb run and it will be moved to L3,
because there could be only 150-225 Mb files at L2. the new file is
lower than the old one, what contradicts the basic idea of the tree LSM-tree.
Similarly with the vinyl_run_count_per_level = 1.

branch:  https://github.com/maksimkulis/tarantool/tree/maksimkulis/bh-3346-fix-run-size-ratio


>Пятница, 31 января 2020, 3:24 +03:00 от Nikita Pettik <korablev at tarantool.org>:
>
>On 24 Jan 14:04, Maxim Kulis wrote:
>> 
>> 
>> Hi! 
>> Yes, here is the new patch.
>> 
>> Change the minimum possible value of the variable vinyl_run_size_ratio to 2. 
>> 
>> Closes #3346
>> 
>> issue:  https://github.com/tarantool/tarantool/issues/3346
>> ---
>
>Put a link to the issue below '---' delimiter next time.
>
>> >> >Finally, I would add brief explanation to the commit message why
>> >> >run_size_ratio less than 2 is meaningless (for those who are not
>> >> >familiar with vinyl inner organization).
>
>Please, add a brief explanation to the commit message and then patch will
>be OK to push. Thanks.
>


-- 
Maxim Kulis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.tarantool.org/pipermail/tarantool-patches/attachments/20200204/c3eafb2f/attachment.html>


More information about the Tarantool-patches mailing list