It appears as though zfs reports the size of a directory to be one byte per
file. Traditional file systems such as ufs or ext3 report the actual size of
the data needed to store the directory.

This causes some trouble with the default behavior of some nfs clients
(linux) to decide to to use a readdirplus call when directory contents are
small vs a readdir call when the contents are large. We've found this
particularly troublesome with Maildir style mail folders. The speedup by not
using readdirplus is a factor of 100 in this particular situation. While we
have a work around it would seem that this non-standard behavior might cause
trouble for others and in other areas. Are there any suggestions for dealing
with this difference and/or why zfs does not represent its directory sizes
in a more traditional manner?

>From the linux kernel source.

./fs/nfs/inode.c:#define NFS_LIMIT_READDIRPLUS (8*PAGE_SIZE)


ie. ZFS

zfshost:~/testdir> ls -1 | wc -l
330
zfshost:~/testdir> stat .
  File: `.'
  Size: 332             Blocks: 486        IO Block: 32768  directory
Device: 29h/41d Inode: 540058      Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 2891/   banal)   Gid: (  101/    film)
Access: 2008-11-05 18:40:16.000000000 -0800
Modify: 2009-09-01 16:09:52.782674099 -0700
Change: 2009-09-01 16:09:52.782674099 -0700

ie. ext3

ext3host:~/testdir> ls -1 | wc -l
330
ext3host:~/testdir> stat .
  File: `.'
  Size: 36864           Blocks: 72         IO Block: 4096   directory
Device: 807h/2055d      Inode: 23887981    Links: 2
Access: (0775/drwxrwxr-x)  Uid: ( 2891/   banal)   Gid: (  101/    film)
Access: 2009-09-21 13:44:00.000000000 -0700
Modify: 2009-09-21 13:44:31.000000000 -0700
Change: 2009-09-21 13:44:31.000000000 -0700

Thanks,
Chris
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to