Log File - Force Abort

> Version: Ingres 6.4/05
> O/S:  Unix (DRS)
> 
> We are experiencing a problem when the log file reaches the log force
> abort limit and just freezes. No activity can continue until either
> Ingres or one of the slaves is killed. When this happens the log file
> then rollsback the transaction and appears to be ok from that point on.
> There are no messages in the errlog.log file to indicate what has caused
> the freeze.
> Has anyone had a similar experience with the log file when it reaches
> the force abort log limit?
> 
> Any suggestions appreciated.
> 
> Andrew Parsons
> 


Hi Andrew,

    Unfortunatly I have far too much experience of LOG File Force Aborts ditto
    Log full aborts.

    However I've never had to shutdown Ingres or kill a slave to get the
    archiver to drain the log file. In fact the thought of killing a slave
    process ie your disk i/o gives me the creeps! Even shutting down is not
    advisable as until the log is drained you arent coming up again! 
    
    I suspect you may be doing this because of the perceived lack of performance
    from the archiver process. Note that I said 'perceived'. You can confirm
    that the archiver is up by checking the status line of the logging system
    either through IPM or by examination of Logstat output. I reccomend the
    former over the latter! If the word ARCHIVE is listed then the Archiver is
    up and running. 

    However, The Archiver process is just another process and has to compete
    for resources on your host like any other. If all you've hit is the FAL
    then only the oldest open transaction is rolled back and new transactions 
    are permitted. Hence the Archiver is busy draining records off one end of
    the log file while your users are just as busy filling the other end up!

    If your Log file is large and your FAL is high then the amount of work the
    archiver has to do is enormous. I'll expalin more later. Suffice it to say
    here that the best advice is to tell your users to bugger off until the
    %Log in use comes down to some reasonable level (say 1/3 of FAL). 
    Alternativly ask them to limit their work to look only.

    Furthermore, It is worth your while automating a check of the %Log file in
    use and sounding an alarm at the 1/3 level.

    You could also think of setting FAL down to a much lower value. On one
    platform we had with over 200 databases we found that Ingres would go
    belly up and corrupt the log file if the Archiver got a tad to busy to
    handle the situation. Hence on that machine we set FAL to 30% compared to
    the 94% we normally run with.

    You could also ensure the Archiver is invoked more regularly to minimise
    the problem. I think the standard installation invokes the archiver on 5%
    of the log file. I prefer to invoke the Archiver on every 1% myself.

    Another way of monitoring the Archivers process is to execute 
        tail -f $II_SYSTEM/ingres/files/II_ACP.LOG
    This will demonstrate the way the archiver works quite nicely too. You
    will notice that the Archiver works with 8 transaction blocks at a time.
    Each transaction is processed in turn and then (I'm told) the rest of the 
    log file is scanned to see if any of these transactions is the last for 
    the database.  Hence the larger the %log file in use, the longer it takes 
    for the archiver to do its job. -- And if someone with Guru status can
    confirm that I'd be happy. Certainly it would explain the acceleration of
    the process as the log gets drained!

    Have Fun,

    Martin Bowes.
Ingres Q & A
Back to William's Home Page

© William Yuan 2000

Email William