You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Lokesh Jain (Jira)" <ji...@apache.org> on 2020/04/23 08:00:00 UTC

[jira] [Commented] (RATIS-801) Ratis snapshot should consider stateMachine#appliedIndex for triggering snapshot

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