[Tarantool-patches] [PATCH v14 2/6] qsync: update confirmed lsn on initial promote request
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Sun Sep 12 18:44:04 MSK 2021
Thanks for the patch!
On 10.09.2021 17:29, Cyrill Gorcunov wrote:
> When promote request is handled we drop last confirmed
> lsn to zero because its value make sense for sync queue
> owner only. Still the case where we become queue owner
> for the first time is special - we need to fetch the
> obtained lsn from the request and remember it so we
> will be able to filter any next malformed requests
> with wrong lsn numbers (see queue filtering procedure
> in next patch).
I don't understand anything. Why isn't it needed always? And
how exactly will it help to filter stuff?
> diff --git a/src/box/txn_limbo.c b/src/box/txn_limbo.c
> index cca2ce493..08463219d 100644
> --- a/src/box/txn_limbo.c
> +++ b/src/box/txn_limbo.c
> @@ -521,8 +522,13 @@ txn_limbo_read_promote(struct txn_limbo *limbo, uint32_t replica_id,
> txn_limbo_read_rollback(limbo, lsn + 1);
> assert(txn_limbo_is_empty(&txn_limbo));
> limbo->owner_id = replica_id;
> + if (likely(limbo->has_initial_promote)) {
> + limbo->confirmed_lsn = 0;
> + } else {
> + limbo->confirmed_lsn = lsn;
> + limbo->has_initial_promote = true;
> + }
> box_update_ro_summary();
> - limbo->confirmed_lsn = 0;
> }
More information about the Tarantool-patches
mailing list