OpenAFS CVS Commit: openafs/src/WINNT/afsd by jaltman
cvs@GRAND.CENTRAL.ORG
cvs@GRAND.CENTRAL.ORG
Thu, 23 Aug 2007 23:19:19 EDT
Update of /cvs/openafs/src/WINNT/afsd
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-1-3/src/WINNT/afsd
Modified Files:
NTMakefile afsd.h afsd_init.c afsd_service.c cm.h cm_btree.c
cm_btree.h cm_dir.c cm_dir.h cm_scache.c cm_scache.h
cm_utils.c cm_vnodeops.c lock.txt
Log Message:
DELTA windows-bplus-tree-20070823
AUTHOR jaltman@secure-endpoints.com
Windows uses case-insensitive file name pattern matching
but AFS is a case sensitive file system. The AFS3 directory
format is block based, uses network byte order and
includes a hash table for fast case sensitive lookups.
This causes several problems for the Windows AFS client.
(1) Traversing the directory blocks is cpu expensive
(2) A hash table miss does not indicate that the desired
entry does not exist.
(3) Determining whether a non-ambiguous inexact match or
the entry does not exist requires a linear traversal
of the entire directory.
These issues often result in 100% CPU utilization.
These issues are addressed by building a modified B+ tree for
each directory and then using the B+ tree for searches.
Further improvements can be made by using the B+ tree leaf
nodes for directory enumeration.
--- DELTA config follows ---
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/NTMakefile 1.52 1.53
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/afsd.h 1.22 1.23
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/afsd_init.c 1.95 1.96
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/afsd_service.c 1.67 1.68
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm.h 1.22 1.23
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_btree.c 1.1 1.2
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_btree.h 1.1 1.2
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_dir.c 1.7 1.8
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_dir.h 1.6 1.7
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_scache.c 1.77 1.78
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_scache.h 1.35 1.36
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_utils.c 1.16 1.17
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/cm_vnodeops.c 1.108 1.109
windows-bplus-tree-20070823 openafs/src/WINNT/afsd/lock.txt 1.2 1.3