Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

raft: bound leadership transfer time with blocking/throttling #3017

Open
dotnwat opened this issue Nov 19, 2021 · 0 comments
Open

raft: bound leadership transfer time with blocking/throttling #3017

dotnwat opened this issue Nov 19, 2021 · 0 comments
Labels
area/raft kind/enhance New feature or request

Comments

@dotnwat
Copy link
Member

dotnwat commented Nov 19, 2021

If a leader is handling raft operations leadership transfer may be delayed. If such operations are capable of starving the leadership transfer process, then a throttling mechanism is required to support forward progress of leadership transfer.

In principle this may not be needed for acks=all because followers will be up-to-date and leadership transfer will be just another raft operation that will complete. However, for acks=0,1 the leader may be far ahead of the followers. Since followers need to be caught up before leadership transfer completes, on-going writes may result in starvation of the transfer process.

  • Apply back pressure for throttling
  • Block operations fully if within some bound

Additional notes

JIRA Link: CORE-787

@dotnwat dotnwat added kind/enhance New feature or request area/raft labels Nov 19, 2021
@dotnwat dotnwat added this to the Rolling upgrade safety milestone Nov 19, 2021
@LenaAn LenaAn self-assigned this Feb 1, 2022
@ivotron ivotron modified the milestones: Rolling upgrade safety, v22.1.1 Feb 23, 2022
@dotnwat dotnwat changed the title raft: bound leadership transfer time with throttling raft: bound leadership transfer time with blocking/throttling Mar 22, 2022
@dotnwat dotnwat removed this from the v22.1.1 (Stale) milestone Apr 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/raft kind/enhance New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants