[ 
https://issues.apache.org/jira/browse/RATIS-1864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Song Ziyang updated RATIS-1864:
-------------------------------
    Description: 
h2. Proposal: Introducing Leader Lease Read into Ratis
h3. Objective:

The primary objective of this proposal is to introduce the Leader Lease Read 
feature into Ratis, enhancing the read capabilities and addressing the existing 
limitations in the current implementation.
h3. Current Implementation:

At present, Ratis supports two read operations:
 # Leader Bypass Read: This type of read operation offers improved latency and 
throughput. However, it is constrained to the leader and may produce 
inconsistent results.
 # Server Linearizable Read (ReadIndex): This type allows clients to read from 
any server, ensuring linearizability but suffers from suboptimal latency. 
Experiments from Alluxio [~liuyaolong]  shows a 20-30% dropdown in throughput 
when switch to ReadIndex from bypass read. 

h3. Reasons for the Proposed Feature:

To address the limitations, I propose to incorporate the Leader Lease Read type 
into Ratis.

This feature has already been validated by other communities, such as 
Sofa-Jraft, where it resulted in a remarkable 15% improvement in throughput 
performance.

Additionally, some of our downstream dependents, like IoTDB, demand low-latency 
read capabilities to efficiently serve time-series queries.
h3. References:
 # Previous community discussions on Leader Lease in RATIS-1273 and relevant 
contributions on 
[https://github.com/apache/ratis/pull/383|https://github.com/apache/ratis/pull/383.]
 # Quantitative results showcasing the benefits of Leader Lease Read can be 
found at [https://www.sofastack.tech/en/projects/sofa-jraft/jraft-user-guide/ 
|https://www.sofastack.tech/en/projects/sofa-jraft/jraft-user-guide/]in Section 
5. Linearizable read.

  was:
h2. Proposal: Introducing Leader Lease Read into Ratis
h3. Objective:

The primary objective of this proposal is to introduce the Leader Lease Read 
feature into Ratis, enhancing the read capabilities and addressing the existing 
limitations in the current implementation.
h3. Current Implementation:

At present, Ratis supports two read operations:
 # Leader Bypass Read: This type of read operation offers improved latency and 
throughput. However, it is constrained to the leader and may produce 
inconsistent results.
 # Server Linearizable Read (ReadIndex): This type allows clients to read from 
any server, ensuring linearizability but suffers from suboptimal latency.

h3. Reasons for the Proposed Feature:

To address the limitations, I propose to incorporate the Leader Lease Read type 
into Ratis.

This feature has already been validated by other communities, such as 
Sofa-Jraft, where it resulted in a remarkable 15% improvement in throughput 
performance.

Additionally, some of our downstream dependents, like IoTDB, demand low-latency 
read capabilities to efficiently serve time-series queries.
h3. References:
 # Previous community discussions on Leader Lease in RATIS-1273 and relevant 
contributions on 
[https://github.com/apache/ratis/pull/383|https://github.com/apache/ratis/pull/383.]
 # Quantitative results showcasing the benefits of Leader Lease Read can be 
found at [https://www.sofastack.tech/en/projects/sofa-jraft/jraft-user-guide/ 
|https://www.sofastack.tech/en/projects/sofa-jraft/jraft-user-guide/]in Section 
5. Linearizable read.


> Support leader lease
> --------------------
>
>                 Key: RATIS-1864
>                 URL: https://issues.apache.org/jira/browse/RATIS-1864
>             Project: Ratis
>          Issue Type: New Feature
>          Components: client, gRPC, server
>            Reporter: Song Ziyang
>            Assignee: Song Ziyang
>            Priority: Major
>
> h2. Proposal: Introducing Leader Lease Read into Ratis
> h3. Objective:
> The primary objective of this proposal is to introduce the Leader Lease Read 
> feature into Ratis, enhancing the read capabilities and addressing the 
> existing limitations in the current implementation.
> h3. Current Implementation:
> At present, Ratis supports two read operations:
>  # Leader Bypass Read: This type of read operation offers improved latency 
> and throughput. However, it is constrained to the leader and may produce 
> inconsistent results.
>  # Server Linearizable Read (ReadIndex): This type allows clients to read 
> from any server, ensuring linearizability but suffers from suboptimal 
> latency. Experiments from Alluxio [~liuyaolong]  shows a 20-30% dropdown in 
> throughput when switch to ReadIndex from bypass read. 
> h3. Reasons for the Proposed Feature:
> To address the limitations, I propose to incorporate the Leader Lease Read 
> type into Ratis.
> This feature has already been validated by other communities, such as 
> Sofa-Jraft, where it resulted in a remarkable 15% improvement in throughput 
> performance.
> Additionally, some of our downstream dependents, like IoTDB, demand 
> low-latency read capabilities to efficiently serve time-series queries.
> h3. References:
>  # Previous community discussions on Leader Lease in RATIS-1273 and relevant 
> contributions on 
> [https://github.com/apache/ratis/pull/383|https://github.com/apache/ratis/pull/383.]
>  # Quantitative results showcasing the benefits of Leader Lease Read can be 
> found at [https://www.sofastack.tech/en/projects/sofa-jraft/jraft-user-guide/ 
> |https://www.sofastack.tech/en/projects/sofa-jraft/jraft-user-guide/]in 
> Section 5. Linearizable read.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to