NFSv4 delegation

Alessio Cecchi alessio at skye.it
Tue Aug 18 15:37:45 UTC 2015



Il 18/08/2015 17:25, Tom Talpey ha scritto:
> On 8/18/2015 10:46 AM, Alessio Cecchi wrote:
>> Hi,
>>
>> in this tipical setup (Dovecot/Director thate share Maildir via NFS)  on
>> your NFS Server you have (about) 90% of read operations and only 10% of
>> write operations.
>>
>> If you see detailed stats for NFS operations you have 40-50% of GETATTR,
>> this means that NFS/Dovecot clients are caching data (mainly dovecot
>> index files) but they have to revalidate the cache frequently asking to
>> the NFS Server if the file is changed (via GETATTR) but the file never
>> change because only this client opens it.
>>
>> So the NFS Server is wasting operations with (unnecessary) GETATTR
>> request.
>>
>> With NFSv4 and delegation you can practically eliminate these (GETATTR)
>> requests and speed up your NFS server (instead of buy SSD disk).
>>
>> This because with delegation a client open file and since is the only
>> client to open these file (that is true with Director) the NFS server
>> delegate the client to manage the file without check if was changed (via
>> GETATTR) on the NFS share.
>
> Enabling delegations on Maildir is going to scale very badly. The NFS
> client will end up requesting one on every message open, and because an
> NFS server can only support a limited number of active delegations, it
> will be forced to constantly recall them, only to issue new short-lived
> ones to the next message open.

Sure, but in my test there wasn't a scale problem, only few users was 
online but the "lock" error in dovecot.log come immediately.

> While it's a decent idea for indexes, the client has no way to request
> delegations selectively for them. Perhaps if you used mdbox where the
> file count is lower, but even then, there will be many users and many
> mailboxes so it is important to be sure there are enough delegations
> available at the NFS server. That's a NetApp question in your case,
> and not a Dovecot one.

An idea could be to have a NFS share for index only and enable 
delegation on it.
-- 
Alessio Cecchi
http://www.linkedin.com/in/alessice


More information about the dovecot mailing list