On Feb 07, 2008  17:14 +0000, Ricardo Correia wrote:
> On Qui, 2008-02-07 at 09:44 -0700, Mark Shellenbaum wrote:
> > Section 2.2.4
> > 
> > Not sure what you mean by storing all xattrs in a single object? Are you 
> > saying all of the Lustre attributes would be stored in a single Solaris 
> > extended attribute file?
> 
> Yes. The benefit of this approach is that it would greatly reduce the
> number of seeks (which are always in short supply) in a Lustre metadata
> server in the case where the xattrs won't fit in the dnode.

To clarify, this is a desirable approach for the "spill over" case where
the small attributes don't fit into the dnode bonus buffer.  The current
situation is that every xattr needs a ZAP entry + dnode + block, no matter
what size it is.  The "EA in dnode" change moves these attributes into
the dnode, but the space there is limited.  The proposal previously
suggested was to have a block pointer to hold the spillover EAs, but
this is quite large and would consume a noticable fraction of the bonus
buffer and either limits the EAs to some larger size (1 block) or requires
having a tree at that level.

The compomise that we propose with is to store the spillover EAs in a
single dnode, which has the benefit of being essentially unlimited in
size, being efficiently addressible (objid), and amortizing the lookup
over multiple attributes.

Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.


Reply via email to