Skip to content

Anchor multi-leader jitter target to the current round's start.#6490

Closed
afck wants to merge 1 commit into
linera-io:mainfrom
afck:ml-jitter
Closed

Anchor multi-leader jitter target to the current round's start.#6490
afck wants to merge 1 commit into
linera-io:mainfrom
afck:ml-jitter

Conversation

@afck

@afck afck commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Motivation

The jitter delay used now as the round-start anchor whenever the proposed round differed from manager.current_round (the conflict-bump case) or manager.round_timeout was missing. On a busy chain where process_inbox interrupts repeatedly, propose_at = now + delay was recomputed each retry and the target receded by delay every time, so a non-preferred client never reached it and never proposed.

Proposal

Derive the anchor instead from data the chain manager already tracks: manager.round_timeout - ownership.round_timeout(current_round). If either is None, propose immediately rather than wait against a stale anchor.

Test Plan

A regression test was added.

Release Plan

  • Backport to testnet_conway.
  • Release SDK.

Links

The jitter delay used `now` as the round-start anchor whenever the
proposed round differed from `manager.current_round` (the conflict-bump
case) or `manager.round_timeout` was missing. On a busy chain where
`process_inbox` interrupts repeatedly, `propose_at = now + delay` was
recomputed each retry and the target receded by `delay` every time, so
a non-preferred client never reached it and never proposed.

Derive the anchor instead from data the chain manager already tracks:
`manager.round_timeout - ownership.round_timeout(current_round)`. If
either is `None`, propose immediately rather than wait against a stale
anchor.
@afck afck requested review from deuszx, ma2bd and ndr-ds June 15, 2026 10:59
@afck

afck commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

Closing in favor of #6455.

@afck afck closed this Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant