Song Ziyang created RATIS-1598:
----------------------------------

             Summary: Check RetryCache before applyLog
                 Key: RATIS-1598
                 URL: https://issues.apache.org/jira/browse/RATIS-1598
             Project: Ratis
          Issue Type: Improvement
            Reporter: Song Ziyang


RetryCache is used to reduce redundant retry requests before AppendLog. To 
support exactly-once semantic, it is necessary also to check RetryCache before 
ApplyLog. 
 
Consider this scenario:
 
RetryCache is updated when the request is successfully committed to RaftLog, 
before replying to client. 
If the same 2 requests arrive at same time, the req#1 pass the RetryCache check 
and successfully appended to RaftLog, but before updating RetryCache and reply, 
the req#2 arrives. Req#2 will also pass RetryCache check and start to be 
appended to log.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to