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)