[
https://issues.apache.org/jira/browse/RATIS-801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17090371#comment-17090371
]
Lokesh Jain commented on RATIS-801:
-----------------------------------
{code:java}
private void takeSnapshot() {
...
final long appliedIndex = getLastAppliedIndex();
if (i > appliedIndex) {
throw new StateMachineException(
"Bug in StateMachine: snapshot index = " + i + " > appliedIndex = " +
appliedIndex
+ "; StateMachine class=" + stateMachine.getClass().getName() + ",
stateMachine=" + stateMachine);
}
{code}
We should use stateMachineLastAppliedIndex in this function as well.
> Ratis snapshot should consider stateMachine#appliedIndex for triggering
> snapshot
> --------------------------------------------------------------------------------
>
> Key: RATIS-801
> URL: https://issues.apache.org/jira/browse/RATIS-801
> Project: Ratis
> Issue Type: Improvement
> Affects Versions: 0.5.0
> Reporter: Shashikant Banerjee
> Assignee: Bharat Viswanadham
> Priority: Major
> Fix For: 0.6.0
>
>
> Currently, while triggering snapshot, snapshotUpdater#appliedIndex is taken
> into account to decide whether it has exceeded the snapshot threshold from
> the last snapshotIndex. This may lead to creating more snapshots than usual
> as stateMachineUpdater#appliedIndex is updated as soon as the
> applyTransaction call happens. Ideally, Ratis snapshot should not be
> triggered taking stateMachine's applied index into account.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)