Date: Tue, 10 Jul 2001 14:21:30 -0700 (PDT) From: Ian Dowse <iedowse@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/conf NOTES src/sys/conf files options src/sys/ufs/ufs dirhash.h ufs_dirhash.c inode.h ufs_inode.c ufs_lookup.c Message-ID: <200107102121.f6ALLUw38626@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
iedowse 2001/07/10 14:21:30 PDT
Modified files:
sys/i386/conf NOTES
sys/conf files options
sys/ufs/ufs inode.h ufs_inode.c ufs_lookup.c
Added files:
sys/ufs/ufs dirhash.h ufs_dirhash.c
Log:
Bring in dirhash, a simple hash-based lookup optimisation for large
directories. When enabled via "options UFS_DIRHASH", in-core hash
arrays are maintained for large directories. These allow all
directory operations to take place quickly instead of requiring
long linear searches. For now anyway, dirhash is not enabled by
default.
The in-core hash arrays have a memory requirement that is approximately
half the size of the size of the on-disk directory file. A number
of new sysctl variables allow control over which directories get
hashed and over the maximum amount of memory that dirhash will use:
vfs.ufs.dirhash_minsize
The minimum on-disk directory size for which hashing should be
used. The default is 2560 (2.5k).
vfs.ufs.dirhash_maxmem
The system-wide maximum total memory to be used by dirhash data
structures. The default is 2097152 (2MB).
The current amount of memory being used by dirhash is visible
through the read-only sysctl variable vfs.ufs.dirhash_maxmem.
Finally, some extra sanity checks that are enabled by default, but
which may have an impact on performance, can be disabled by setting
vfs.ufs.dirhash_docheck to 0.
Discussed on: -fs, -hackers
Revision Changes Path
1.933 +5 -1 src/sys/i386/conf/NOTES
1.549 +2 -1 src/sys/conf/files
1.284 +4 -1 src/sys/conf/options
1.35 +3 -1 src/sys/ufs/ufs/inode.h
1.37 +9 -1 src/sys/ufs/ufs/ufs_inode.c
1.50 +94 -3 src/sys/ufs/ufs/ufs_lookup.c
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200107102121.f6ALLUw38626>
