[long] Recovery handling in TXN branch

Matthias Andree matthias.andree at gmx.de
Sun Aug 22 14:39:53 CEST 2004


"Pavel Kankovsky" <peak at argo.troja.mff.cuni.cz> writes:

> Here is a revised and simplified algorithm (without CLNF--its maintenance
> was too complex and error-prone):
>
> 1. Check APRT for zombie cells. Go to 3 if no zombie cells are found.
> 2. Acquire an exclusive lock on LCKF. Go back to 1 if you fail.
>    Re-check APRT and go to 3 unless any zombie cells are found.
>    Otherwise, run the recovery, clear APRT, demote the exlusive lock on 
>    LCKF to a shared lock and go to 4.
> 3. Acquire a shared lock on LCKF. Go back to 1 if you fail.
> 4. Find a free APRT cell, lock it, check that it is still free
>    (abort if it is not). Put 1 into the cell, and commit the change
>    to non-volatile memory.
> 5. Do the work. Monitor APRT in the meantime, abort when a zombie
>    cell is found.
> 6. Clear your APRT cell, release locks on APRT and LCKF.
>
> Ok, I admit it. This algorithm is nothing but a refinement of Matthias' 
> one.

The difference is that you suggested using signals to run a checker "can
we continue" (No. 5 above) regularly and using "cells" in APRT rather
than files in a directory.

I wonder how many problems with record locking in kernels this will turn
up, I have only locked entire files so far. :-)

-- 
Matthias Andree

NOTE YOU WILL NOT RECEIVE MY MAIL IF YOU'RE USING SPF!
Encrypted mail welcome: my GnuPG key ID is 0x052E7D95 (PGP/MIME preferred)



More information about the bogofilter-dev mailing list