To reduce recovery time, checkpoints are used for the Rollback Recovery and the Precise Recovery. More specifically, there are two actions done when a checkpoint is reached:

  1. Tell BaDaSt that all elements before the checkpoint can be discarded.
  2. Make a processing image. A processing image contains all operator states in a query processing of Odysseus at a given point in time. An operator state consists of all information an operator stores for the next element to process (e.g., sums, counts). A queue state consists of all elements that are in Odysseus waiting to be processed by an operator.

Currently, checkpoints can only be defined by system time (e.g., every minute) but independently for each script. They have to be set as a parameter for the rollback recovery and the precise recovery:

Example
#RECOVERYCONFIGURATION RollbackRecovery checkpoints=SystemTimeCheckpointManager checkpointunit=MINUTES checkpointperiod=1
[Definition of queries to apply rollback recovery]
 
#RECOVERYCONFIGURATION PreciseRecovery checkpoints=SystemTimeCheckpointManager checkpointunit=HOURS checkpointperiod=2
[Definition of queries to apply precise recovery]

Possible checkpointunits are: MILLISECONDS, SECONDS, MINUTES and HOURS.

  • No labels