You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Ivan Andika (Jira)" <ji...@apache.org> on 2026/01/13 08:50:00 UTC
[jira] [Created] (RATIS-2382) Support skip leadership check during ReadIndex
Ivan Andika created RATIS-2382:
----------------------------------
Summary: Support skip leadership check during ReadIndex
Key: RATIS-2382
URL: https://issues.apache.org/jira/browse/RATIS-2382
Project: Ratis
Issue Type: Improvement
Reporter: Ivan Andika
Assignee: Ivan Andika
The purpose of the leadership check for every ReadIndex is for the leader to double check that it is the latest leader before returning to the ReadIndex. Otherwise, leader might serve stale data when there is a split brain when there are two concurrent leaders (which might be quite rare). This leadership check seems to cause latency increase since it causes the readIndex call to block.
One improvement to reduce RTT time without reducing consistency is to use leader lease, but looks like it might not be enough since heartbeats might still be sent when leader lease expired. Leader lease also might cause longer election time which might affect the availability.
We can support leader's readIndex to simply return without needing to wait for AE to return (similar behavior to leader having a lease). Note that allowing leader to skip this leadership check allows split brain scenario, which causes the reads no longer be linearizable since it allows stale reads. With this in mind, if there are use cases / workloads that care more about performance and can tolerate to be "mostly" consistent (i.e. consistent under steady state, with no election, network partitions, etc), they can enable this to improve the latency of read index without leader lease issue.
We can add make this configurable and make it disabled by default.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)