Back Midas Rome Roody Rootana
  Midas DAQ System  Not logged in ELOG logo
Entry  07 Jan 2008, Stefan Ritt, Info, Roll-back for history sytem added 
    Reply  13 Feb 2008, Konstantin Olchanski, Info, Roll-back for history sytem added 
       Reply  13 Feb 2008, Stefan Ritt, Info, Roll-back for history sytem added 
          Reply  28 May 2008, Konstantin Olchanski, Info, Roll-back for history sytem added 
Message ID: 482     Entry time: 28 May 2008     In reply to: 431
Author: Konstantin Olchanski 
Topic: Info 
Subject: Roll-back for history sytem added 
> > But to make things more interesting we had another history outage this week...
> > Anyhow, I now have a patch to allow hs_read() to "skip the bad spots" in history files.
> 
> [Stefan suggested]
>
>   if ((irec.time - last_irec_time) > 3600*24)


Yes, your stronger check works quite nicely. The whole patch is now committed into SVN,
revision 4202.

This is how it all works:

0) teach hs_gen_index() to skip over bad data. This is important because hs_read() only
looks at data records listed in the index file: if bad data is omitted from the index,
hs_read() will never see it and we do not need to worry about it in hs_read().
0a) because hs_gen_index() does not check validity of time stamps, we still need to check
them in hs_read().
1) in hs_read(), if we detect bad data (invalid headers, bad time stamps, etc), we
regenerate the index files - this removes a while class of bad data. We also look at time
stamps carefully and ignore records where time goes backwards (usually bad data) and ignore
records with time in the future beyound the end of the current history file (each history
file only contains 24*60*60 seconds = 1 day's worth of data).

While certainly not bullet-proof, these changes should make it easier to deal with
corruption of history files.

K.O.
ELOG V3.1.4-2e1708b5