Re: [exim] maildirsize file and massive concurrency

トップ ページ
このメッセージを削除
このメッセージに返信
著者: Phil Pennock
日付:  
To: exim-users
題目: Re: [exim] maildirsize file and massive concurrency
On 2011-02-19 at 21:05 +0100, Heiko Schlittermann wrote:
> Currently I'm investigating two directions:
>
>     - if I can prevent deliveries into a specific mailbox while
>       the size recalculation is running  [preferred]


You have multiple Linux boxes mounting a common storage via NFS? So,
each time one of them writes into the directory (a delivery), the
directory cache on the others is invalidated and needs to readdir()
again. NFS (v2/v3, haven't looked at v4) doesn't have a way to notify
client hosts of deltas in directory content, they need to readdir()
again.

One approach might be to bias which hosts receive mail for a given
mailbox; you said you had a two-stage system (good); so the front stage
uses ${nhash_4:$local_part@$domain} to get a number 0-3; you use this to
select which of the backing hosts is used, but set "fallback_hosts" to
the complete list of backing hosts, so that in the event of a machine
failure you still get delivery. Thus normally all mails for one address
go to just one host and you maintain NFS cache coherency.

-Phil