[ 
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())) 
-> 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.


> 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