On Tue, 2007-10-16 at 10:26 -0400, Josef Bacik wrote: > Hello, > > Now that I actually understand whats going on with the generic xattr handling > stuff, I've rethought how to do xattrs. Currently each individual xattr for a > particular inode has its own item, or if its too large its own inode. So if I > create file blah and then add "security.mysec", "user.stuff", > "trusted.whatever" > to blah, there will be 3 dir_item's, one for each xattr. I was trying to > figure > out why ext3 wasn't storing the prefix on disk with the xattr and I figured it > out, it has its own little object for holding xattrs for the inode. So > instead > of having 3 different locations for its xattrs, it has one big chunk that it > uses for its xattrs. So this is what I was thinking of doing, having a xattr > disk structure that holds the name, the index (for looking up the > prefix/handler), and the value. Then we only use one dir_item per inode for > xattrs, and just pack in new entries as they come along, and then once we > outgrow the dir_item just move it all into an inode. Let me know what you > guys > think about this. Thank you,
For the common case where we have a really small number of xattrs on an inode, I doubt it makes a huge difference either way. The dir items should be cheap enough that you can create one dir item per xattr without much pain, and I prefer that approach over one blob. The problem with the blob is that the performance of the xattrs as a whole is dependent on your largest xattr. With the one dir item per xattr, the btree takes care of all of that nonsense for you. -chris _______________________________________________ Btrfs-devel mailing list [email protected] http://oss.oracle.com/mailman/listinfo/btrfs-devel
