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

Reply via email to