OneSizeFitsQuorum commented on code in PR #925:
URL: https://github.com/apache/ratis/pull/925#discussion_r1335338912


##########
ratis-server/src/main/java/org/apache/ratis/server/impl/LeaderStateImpl.java:
##########
@@ -1091,7 +1091,7 @@ public boolean checkLeadership() {
    * 4. If majority respond success, returns readIndex.
    * @return current readIndex.
    */
-  CompletableFuture<Long> getReadIndex(Long readAfterWriteConsistentIndex) {
+  CompletableFuture<Long> getReadIndex(RaftServerConfigKeys.Read.Option 
option, Long readAfterWriteConsistentIndex) {

Review Comment:
   It seems that with lease read we need to change the name of this function 
(and maybe some other functions on the call stack). The important logic for 
both readIndex and leaseRead is three steps.
   1. Verify that the current node is the Leader (readIndex uses a logical 
clock to initiate heartbeat, lease read uses a physical clock with an error 
upper bound),
   2. Wait for the local applyIndex to reach the current commitIndex
   3. Query the state machine.
   
   Maybe we could name the first step confirmLeader or something



##########
ratis-server-api/src/main/java/org/apache/ratis/server/RaftServerConfigKeys.java:
##########
@@ -176,14 +176,17 @@ enum Option {
       DEFAULT,
 
       /** Use ReadIndex (see Raft Paper section 6.4). Maintains 
linearizability */
-      LINEARIZABLE
+      LINEARIZABLE,
+
+      /** Use Leader lease. Efficient than ReadIndex if clock drift is bounded 
*/
+      LEASE

Review Comment:
   It seems that both DEFAULT and LINEARIZABLE are talking about consistency 
issues. Lease and ReadIndex are implementation techniques for implementing 
LINEARIZABLE, so it seems inappropriate to mention lease alone alongside the 
other two options?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to