OpenAFS CVS Commit: openafs/src/WINNT/afsd by jaltman

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

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