Skip to content

[1sp] Raft: document the new Pre-Vote stage in leader election process #2593

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

Closed
Tracked by #2592
veod32 opened this issue Jan 21, 2022 · 1 comment · Fixed by #2933
Closed
Tracked by #2592

[1sp] Raft: document the new Pre-Vote stage in leader election process #2593

veod32 opened this issue Jan 21, 2022 · 1 comment · Fixed by #2933
Assignees
Labels
feature A new functionality raft [area] Related to RAFT server [area] Task relates to Tarantool's server (core) functionality

Comments

@veod32
Copy link
Collaborator

veod32 commented Jan 21, 2022

Epic: #2592

Product: Tarantool
Since: 2.10.0
Dev issue: tarantool/tarantool#6654
Root document: https://www.tarantool.io/en/doc/latest/book/replication/repl_leader_elect/#leader-election-process
SME: @ sergepetrenko

Details

[input from dev issue]
When a server gets partitioned from the majority of the cluster, it starts incrementing its term every election_timeout, trying to win elections. Once such a server reunites with the cluster it unintentionally disrupts the current working leader. The leader steps off seeing a greater term number. This makes the whole cluster go through at least one round of elections, rendering it read-only for a couple of seconds.

Diego Ongaro's thesis covers this issue and suggests adding a Pre-Vote stage to Raft

TDB details of the implementation of the Pre-Vote stage in Tarantool

ToDo

  • Update the description of the leader election process starting from this sentence: "So if there are no heartbeats for a period set by the replication_timeout option, a new election starts." The process will be different with the Pre-Vote stage
@veod32 veod32 added server [area] Task relates to Tarantool's server (core) functionality feature A new functionality raft [area] Related to RAFT labels Jan 21, 2022
@veod32 veod32 self-assigned this Jun 6, 2022
@veod32
Copy link
Collaborator Author

veod32 commented Jun 6, 2022

Also, the doc issue #2837 is related to the pre-vote dev ticket (tarantool/tarantool#6654) and should be done as well.

@veod32 veod32 added 1sp and removed 3sp labels Jun 7, 2022
@veod32 veod32 changed the title [3pt] Raft: document the new Pre-Vote stage in leader election process [1sp] Raft: document the new Pre-Vote stage in leader election process Jun 7, 2022
veod32 added a commit that referenced this issue Jun 8, 2022
veod32 added a commit that referenced this issue Jun 8, 2022
veod32 added a commit that referenced this issue Jun 14, 2022
veod32 added a commit that referenced this issue Jun 14, 2022
veod32 added a commit that referenced this issue Jun 16, 2022
veod32 added a commit that referenced this issue Jun 16, 2022
…tion (#2933)

replication: update the leader election related articles

* Update conditions for a new leader election start
* Restructure the box.info.election description
* Add description of the leader_idle field in box.info.election
* Add description of the new fields in the IPROTO_RAFT request

Closes #2593, #2837
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature A new functionality raft [area] Related to RAFT server [area] Task relates to Tarantool's server (core) functionality
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants