[exim] maildirsize file and massive concurrency

Top Page
Delete this message
Reply to this message
Author: Heiko Schlittermann
Date:  
To: exim-users
Subject: [exim] maildirsize file and massive concurrency
Hello,

probably some admin of a larger site using maildir++ and quota
is reading here.

In order to support quota on a maildir++ storage Exim is configured to
maintain the "maildirsize" file. There are several rules that trigger a
recalculation of the used space and a rewrite of this "maildirsize"
file. On a busy mailbox the rule "filesize > 5120 bytes" applies quite
often.

The result of the recalculation process is used for quota decision.
Additionally the result gets written into "maildirsize", BUT ONLY
IF during the recalculation no changes to any of the relevant
directories happen

On a busy system and a full mailbox attached via NFS the recalcuation
takes noticable time (several seconds), and during this time new mails
are flooding the mailbox.

Thus often die result of the recalculation gets junked. To make it
worse, several parallel deliveries then start the recalculation in parallel.
Again - the results are used, but the "maildirsize" is not created.

Then we get a nice "stau" in the queues and a quite impressive load.

I get the feeling, that using "maildirsize" is not an option here. On
the other hand, the POP/IMAP server (courier) uses it for it's quota
calculation too. Hacking the code (exim and courier) is possible, but
not preferred.

How is this solved on other busy sites?

--
Heiko :: dresden : linux : SCHLITTERMANN.de
GPG Key 48D0359B : 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B