[ 
https://issues.apache.org/jira/browse/RATIS-883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

runzhiwang updated RATIS-883:
-----------------------------
    Description: 
*What's the problem ?*
 !screenshot-1.png! 

*What's the reason ?*
The reason is follower update commitInfoCache after leader.

The stack of follower update commitInfoCache is: 
RaftServerImpl::appendEntriesAsync-> state.updateStateMachine -> 
StateMachineUpdater::applyLog -> RaftServerImpl::applyLogToStateMachine -> 
RaftServerImpl::replyPendingRequest -> RaftServerImpl::getCommitInfos -> 
infos.add(commitInfoCache.update(getPeer(), 
state.getLog().getLastCommittedIndex())) -> CommitInfoCache::update.

The stack of leader update commitInfoCache is: follower finish 
RaftServerImpl::appendEntriesAsync and return reply-> 
GrpcLogAppender::runAppenderImpl -> GrpcLogAppender::appendLog 
->LogAppender::createRequest ->LeaderState::newAppendEntriesRequestProto 
->RaftServerImpl::getCommitInfos 
->LeaderState::updateFollowerCommitInfos->CommitInfoCache::update.

  was:
*What's the problem ?*
 !screenshot-1.png! 

*What's the reason ?*
The reason is follower update commitInfoCache after leader.

The stack of follower update commitInfoCache is: 
RaftServerImpl::appendEntriesAsync-> state.updateStateMachine -> 
StateMachineUpdater::applyLog -> RaftServerImpl::applyLogToStateMachine -> 
RaftServerImpl::replyPendingRequest -> RaftServerImpl::getCommitInfos -> 
infos.add(commitInfoCache.update(getPeer(), 
state.getLog().getLastCommittedIndex())) -> CommitInfoProto::update.

Leader update 


> Failed UT: testStateMachineMetrics.checkFollowerCommitLagsLeader
> ----------------------------------------------------------------
>
>                 Key: RATIS-883
>                 URL: https://issues.apache.org/jira/browse/RATIS-883
>             Project: Ratis
>          Issue Type: Bug
>            Reporter: runzhiwang
>            Assignee: runzhiwang
>            Priority: Major
>         Attachments: screenshot-1.png
>
>
> *What's the problem ?*
>  !screenshot-1.png! 
> *What's the reason ?*
> The reason is follower update commitInfoCache after leader.
> The stack of follower update commitInfoCache is: 
> RaftServerImpl::appendEntriesAsync-> state.updateStateMachine -> 
> StateMachineUpdater::applyLog -> RaftServerImpl::applyLogToStateMachine -> 
> RaftServerImpl::replyPendingRequest -> RaftServerImpl::getCommitInfos -> 
> infos.add(commitInfoCache.update(getPeer(), 
> state.getLog().getLastCommittedIndex())) -> CommitInfoCache::update.
> The stack of leader update commitInfoCache is: follower finish 
> RaftServerImpl::appendEntriesAsync and return reply-> 
> GrpcLogAppender::runAppenderImpl -> GrpcLogAppender::appendLog 
> ->LogAppender::createRequest ->LeaderState::newAppendEntriesRequestProto 
> ->RaftServerImpl::getCommitInfos 
> ->LeaderState::updateFollowerCommitInfos->CommitInfoCache::update.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to