runzhiwang opened a new pull request #333:
URL: https://github.com/apache/incubator-ratis/pull/333


   ## What changes were proposed in this pull request?
   
   Currently, duplicated key maybe put into entryCache by different threads 
loading segment file at the same time. So we should allow it.
   
   For example.
   
   First thread's stack:
   ```
   
org.apache.ratis.server.raftlog.segmented.LogSegment$LogEntryLoader|LogSegment.java|245|load
   
org.apache.ratis.server.raftlog.segmented.LogSegment|LogSegment.java|363|loadCache
   
org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog|SegmentedRaftLog.java|275|get
   
org.apache.ratis.server.impl.StateMachineUpdater|StateMachineUpdater.java|223|applyLog
   
org.apache.ratis.server.impl.StateMachineUpdater|StateMachineUpdater.java|176|run
   ```
   
   Second thread's stack:
   ```
   
org.apache.ratis.server.raftlog.segmented.LogSegment$LogEntryLoader|LogSegment.java|245|load
   
org.apache.ratis.server.raftlog.segmented.LogSegment|LogSegment.java|363|loadCache
   
org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog|SegmentedRaftLog.java|275|get
   
org.apache.ratis.server.impl.LeaderStateImpl|LeaderStateImpl.java|736|updateCommit
   
org.apache.ratis.server.impl.LeaderStateImpl|LeaderStateImpl.java|689|lambda$updateCommit$12
   java.util.Optional|Optional.java|159|ifPresent
   
org.apache.ratis.server.impl.LeaderStateImpl|LeaderStateImpl.java|689|updateCommit
   
org.apache.ratis.server.impl.LeaderStateImpl$StateUpdateEvent|LeaderStateImpl.java|109|execute
   
org.apache.ratis.server.impl.LeaderStateImpl$EventProcessor|LeaderStateImpl.java|572|run
   
   ```
   ## What is the link to the Apache JIRA
   
   https://issues.apache.org/jira/browse/RATIS-1215
   
   ## How was this patch tested?
   
   No need to add new ut.
   


----------------------------------------------------------------
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.

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


Reply via email to