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.