On Wed, 29 Jun 2005, Tony Finch wrote:
> The long term solution is to use more sophisticated database APIs to store
> the hints, but this may mean Berkeley DB or SQL only (no gdbm etc.) which
> would make Exim harder to build and install.
Or go to the other extreme and use a very simple db library. Berkeley DB
is a huge overkill for what Exim needs. A very simple db library does
exist
http://sourceforge.net/projects/tdb/
and Exim supports it. But whether that would actually help in practice,
I don't know.
Exim has never paid attention to any internal locking in DB libraries.
In the interests of a consistent interface for all of them, it does its
own external locking. There maybe something to be gained by doing work
on using internal locking where it exists. For example, tdb claims to
allow multiple simultaneous writers and to do its own locking. Who
fancies doing this experiment:
1. Cut out Exim's external db locking.
2. Build it with tdb.
3. Run performance tests.
4. Compare with unmodified Exim and tdb.
5. Compare with unmodified Exim and bdb (or gdbm, or...)
--
Philip Hazel University of Cambridge Computing Service,
ph10@??? Cambridge, England. Phone: +44 1223 334714.
Get the Exim 4 book: http://www.uit.co.uk/exim-book