public void InitiatePeriodicCheckpoint() { if (periodicCheckpointTruncationState == PeriodicCheckpointTruncationState.NotStarted) { periodicCheckpointTruncationState = PeriodicCheckpointTruncationState.Ready; } }
private bool ShouldInitiatePeriodicTruncation() { bool periodicCheckpointCompleted = periodicCheckpointTruncationState == PeriodicCheckpointTruncationState.CheckpointCompleted; if (periodicCheckpointCompleted) { periodicCheckpointTruncationState = PeriodicCheckpointTruncationState.TruncationStarted; } return(periodicCheckpointCompleted); }
private bool ShouldInitiatePeriodicCheckpoint() { bool periodicCheckpointRequested = periodicCheckpointTruncationState == PeriodicCheckpointTruncationState.Ready; if (periodicCheckpointRequested) { periodicCheckpointTruncationState = PeriodicCheckpointTruncationState.CheckpointStarted; } return(periodicCheckpointRequested); }
public void OnCheckpointCompleted(Exception err, CheckpointState state, bool isRecoveredCheckpoint) { if (!isRecoveredCheckpoint && periodicCheckpointTruncationState != PeriodicCheckpointTruncationState.CheckpointStarted) { // Checkpoint not initiated by config // Indicates regular checkpoint return; } if (err != null || state != CheckpointState.Completed) { // Checkpoint failed to complete successfully, reset periodic process to 'Ready' return; } periodicCheckpointTruncationState = PeriodicCheckpointTruncationState.CheckpointCompleted; }
public void OnTruncationCompleted() { // Reset the periodic process periodicCheckpointTruncationState = PeriodicCheckpointTruncationState.NotStarted; }