[Tarantool-patches] [PATCH 3/7] txn_limbo: fix promote term filtering
Serge Petrenko
sergepetrenko at tarantool.org
Fri Jun 18 00:00:11 MSK 2021
15.06.2021 23:57, Vladislav Shpilevoy пишет:
> Thanks for the patch!
>
> On 10.06.2021 15:32, Serge Petrenko via Tarantool-patches wrote:
>> txn_limbo_process() used to filter out promote requests whose term was
>> equal to the greatest term seen. This wasn't correct for PROMOTE entries
>> with term 1.
>>
>> Such entries appear after box.ctl.promote() is issued on an instance
>> with disabled elections. Every PROMOTE entry from such an instance has
>> term 1, but should still be applied. Fix this in the patch.
> Didn't we agree that PROMOTE should bump the term always? I see no purpose
> for the PROMOTE which never bumps the term except for the tests, but for
> such occasion it would be better to have internal.make_leader() or something
> which bypasses everything. Although the best option would to bump the term
> always.
>
> I see you did something in the last commit about that, but the part
> about `limbo->promote_greatest_term > 1` still remains. It looks very
> illegal to point out some terms as "special".
What about old instances?
They may issue multiple promotes for the same term when elections are off.
Previous behaviour (wrong, because we forgot to filter out too old
promotes at all)
made the instance apply all such promotes.
I thought we should allow multiple promotes, at least for the default
term (1), which
happen only when elections are turned off and have never been turned on.
Otherwise, having a new instance together with the old one in the same
cluster,
you'll have one of them apply all the promotes for one term, and have
one dataset,
and the other ignore all but the first promote, and have possibly
different data.
I did fix the issue in the last commit. All the new instances will issue
promotes with
increasing term each time, and the term will be >= 2.
So all the promotes with term == 1 surely will be from the old instances.
--
Serge Petrenko
More information about the Tarantool-patches
mailing list