> > This is a workaround. We really need a solution to
> the
> > problem. We will be looking into some alternatives
> to
> > sleepycats library for some of the databases. I
> was
> > thinking about trying the tdb library from samba
> > project.
>
> What is the advantage of tdb over BerkeleyDB?
I was thinking that the tdb was a bit lighter and
might
prove faster in some cases.
> > Or maybe there should be some way to, hm 'renice'
> the
> > lmtpd having a locks in favour of POP/IMAP
> processes ?
> Are you sure that 'deadlock' occurs between these
> processes?
> It can also be just between two lmtpds - this
> workaround
> serializes delivery and thus prevents lmtpds to
> deadlock.
After some more testing we think that the main problem
is between lmtpd processes accessing the
/var/imap/deliverdb databases. While reading a source
of imap/duplicate.c, there's a note next to
get_db_name
function saying that too many processes where
contending for the locks on delivered.db and its a
hack to distribute load among 26 files based on the
first letter of the username. Maybe this hack isn't
enough ?
Maybe there should be more files to distribute load?
The lmptds are opening/closing the databases on each
letter, this is not very speed-wise I think. We have
4 lmtpds on the box, they accept letters via internet
connection, this connection is being cached by our
mail deamon to speed up the delivery. Maybe the
database shouldn't be opened/closed that ofter in such
a case ?
Well, after all we have disabled singleinstancestore,
which has cured our old server. However we percieve
this as a temporary solution to the problem.
Helmut.
__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - buy the things you want at great prices
http://auctions.yahoo.com/