[ https://issues.apache.org/jira/browse/RATIS-458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16977582#comment-16977582 ]
Tsz-wo Sze commented on RATIS-458: ---------------------------------- > ... this condition (pendingRequests.size() <= nextIndex - matchIndex) always > holds. ... Let's add a precondition? > GrpcLogAppender#shouldWait should wait on pending log entries to follower > ------------------------------------------------------------------------- > > Key: RATIS-458 > URL: https://issues.apache.org/jira/browse/RATIS-458 > Project: Ratis > Issue Type: Bug > Reporter: Lokesh Jain > Assignee: Lokesh Jain > Priority: Blocker > Labels: ozone > Attachments: RATIS-458.001.patch, RATIS-458.002.patch, > RATIS-458.003.patch, RATIS-458.004.patch > > > In GrpcLogAppender when an append entry times out we remove the entry from > the pendingRequests. This decreases the size of pendingRequests which affects > the logic in GrpcLogAppender#shouldWait. Further we also consider heartbeats > in shouldWait because heartbeats are tracked in pendingRequests. It should > actually wait on the number of log entries which are appended to follower but > have not yet been processed by it. > GrpcConfigKeys.Server.leaderOutstandingAppendsMax should also be a fraction > of RaftServerConfigKeys.Log.queueSize. This brings flow control for leader's > append entries to follower because then number of outstanding append entries > in leader would be limited by maximum number of operations in raft log worker. -- This message was sent by Atlassian Jira (v8.3.4#803005)