Snapshot of Transactional Code for the Daring

Matthias Andree matthias.andree at gmx.de
Tue Mar 23 02:22:43 CET 2004


Hi,

I have made a tarball of bogofilter 0.17.4+txn (i. e. the version with
the Berkeley DB Transactional Data Store) available at
http://home.pages.de/~mandree/bogofilter/ - it is only interesting for
users of BerkeleyDB, of which versions 4.1 or 4.2 are recommended
albeit 3.2 and newer will work with reduced functionality and at reduced
robustness levels unless you have a fully data journaling file system
that guarantees atomic writes for pages larger than disk blocks.

The transactional interface is supposed to prevent data base corruption
when bogofilter/bogoutil or the computer go down hard on write access
and usually allow to recover the data base from a crash, "db_recover -v
-c -h .bogofilter" shall be used with the mail system stopped. Details
are in the doc/README.db data base file, among them is having a reliable
fsync(), that means SWITCH THOSE DAMN WRITE CACHE IN YOUR DISK DRIVES
OFF. I hope that was clear. Theoretically it should be possible for
operating systems to support "flush cache" or "synchronize cache"
commands and issue them to the drives at the right times, but it is
unknown to date which combinations of operating system and file system
are safe.

WARNING: That code performs no-way-back conversions on your data base,
once you've run that code, you cannot run the non-transactional code any
more. It is prudent to dump the current state of all your data bases
before installing the txn code so you can return to the traditional code.

WARNING: There is a known issue that causes lock table exhaustion on
BerkeleyDB 4.0 with bogoutil -d (4.1 and 4.2 have not been tried yet)
that means I cannot use bogoutil -d to dump my personal data base at the
moment. Further investigation and fix are still pending.

-- 
Matthias Andree

Encrypt your mail: my GnuPG key ID is 0x052E7D95




More information about the Bogofilter mailing list