[Lustre-devel] Moving forward on Quotas

Matthew Ahrens Matthew.Ahrens at sun.com
Mon Jun 2 17:50:49 PDT 2008

Nikita Danilov wrote:
> Jeff Bonwick writes:
>  > I'd suggest working with Matt Ahrens on this.
> Hello,
> we were discussing recently what is needed from the DMU to implement quotas
> and other forms of space accounting. Our basic premise is that it is desirable
> to keep DMU part of the quota support at minimum, and to implement only
> mechanism here, leaving policy to the upper layers.

I agree with this premise.  However, your proposed implementation (especially 
the asynchronous update mechanism and associated pending file) seems 
unnecessarily complicated.

I would suggest that we simply update a "database" (eg. ZAP object or sparse 
array) of userid -> space usage from syncing context when the space is 
allocated/freed (ie, dsl_dataset_block_{born,kill}).  I believe that the 
problems this presents[*] will be more tractable than the method you outlined.


[*] eg, if the DB object is stored in the user's objset, then updating it in 
syncing context may be problematic.  if it is stored in the MOS, carrying it 
along when doing snapshot operations will be painful (snapshot, clone, send, 
recv, rollback, etc).

More information about the lustre-devel mailing list