A full replay recovery is a rollback recovery without any checkpointing. It uses an external application, Backup of Data Streams (BaDaSt), that preserves all incoming elements after the beginning of the stream processing by the query. After a crash of Odysseus and a restart, Odysseus receives all preserved elements from BaDaSt and processes them before it processes the newer elements (which are again preserved by BaDaSt, so there is no data loss). Note that Odysseus will try to use the original data source again after some time, but for data streams with a high data rate and a long time span between crash and restart, it is possible that Odysseus can not switch back to the original source. In that case, Odysseus continues to process the elements from BaDaSt.


 

Requirements: To use the full replay recovery, you have to (1) define a BaDaSt recorder for each data source (in the same file as the source definition) that elements shall be preserved (see BaDaSt) and (2) choose the full replay recovery:

Example
#PARSER PQL
[Definition of data source "bid"]
#BADASTRECORDER type=TCPStringRecorder sourceame=bid
 
#RECOVERYCONFIGURATION FullReplayRecovery
[Definition of queries to apply full replay recovery]


  • No labels