D.M.Chapman@??? said:
} I am a little worried that exim could get confused if it happens to
} access the database after we have replaced the .dir file but not the
} corresponding .pag file. Are we worrying over nothing? Is there a way
} to perform some sort of file locking on these files that exim will
} obey? It seems to check its hints database for locks but nothing
} else...
The exim_dbmbuild code does a build of the database into a new file and
then a rename into place. Unfortunately (old style) dbm files use 2
files, so there is a small race condition during the update. Locking
*could* be done, but is problematic.
I solve this by using a single file db system - Berkeley db, GNU dbm or
Dan Bernstein's cdb (we actually use cdb for several other reasons). Then
you have atomic updates. If you have *busy* mail machines, and lots of
file lookups, and an OS which support MMAP (most do), then the cdb code in
exim IMHO is *very* good for fast lookups. You do need a compile time
option to enable it, but we run all our systems on cdb exclusively (other
than the hints databases for which it is unsuitable).
Nigel.
--
[ Nigel.Metheringham@??? - Systems Software Engineer ]
[ Tel : +44 113 207 6112 Fax : +44 113 234 6065 ]
[ Real life is but a pale imitation of a Dilbert strip ]
--
*** Exim information can be found at
http://www.exim.org/ ***