<font size=2 face="sans-serif">There have been a few changes over the
years that may invalidate some of the old advice about metadata and disk
allocations there for.</font><br><font size=2 face="sans-serif">These have been phased in over the last
few years, I am discussing the present situation for release 4.2.x</font><br><br><font size=2 face="sans-serif">1) Inode size. Used to be 512.
Now you can set the inodesize at mmcrfs time. Defaults to 4096.</font><br><br><font size=2 face="sans-serif">2) Data in inode. If it fits,
then the inode holds the data. Since a 512 byte inode still works,
you can have more than 3.5KB of data in a 4KB inode.</font><br><br><font size=2 face="sans-serif">3) Extended Attributes in Inode. Again,
if it fits... Extended attributes used to be stored in a separate
file of metadata. So extended attributes performance is way better
than the old days.</font><br><br><font size=2 face="sans-serif">4) (small) Directories in Inode. If
it fits, the inode of a directory can hold the directory entries. That
gives you about 2x performance on directory reads, for smallish directories.<br></font><br><font size=2 face="sans-serif">5) Big directory blocks. Directories
used to use a maximum of 32KB per block, potentially wasting a lot of space
and yielding poor performance for large directories.</font><br><font size=2 face="sans-serif">Now directory blocks are the lesser
of metadata-blocksize and 256KB.</font><br><br><font size=2 face="sans-serif">6) Big directories are shrinkable. Used
to be directories would grow in 32KB chunks but never shrink. Yup,
even an almost(?) "empty" directory would remain the size the
directory had to be at its lifetime maximum. That means just a few
remaining entries could be "sprinkled" over many directory blocks.
(See also 5.)</font><br><font size=2 face="sans-serif">But now directories autoshrink to avoid
wasteful sparsity. Last I looked, the implementation just stopped
short of "pushing" tiny directories back into the inode. But
a huge directory can be shrunk down to a single (meta)data block.
(See --compact in the docs.)</font><br><br><font size=2 face="sans-serif">--marc of GPFS</font><BR>