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.