Both of these are easily handled if the server is 100% in charge of
managing the filesystem _metadata_ and data. That's what I meant by
complete control.
i.e. it not ext3 or reiserfs or vfat, its a block device or 1000GB file
managed by a userland process.
Doing it that way gives one a bit more freedom to tune the filesystem
format directly. Stable inode numbers and filehandles are just easy as
they are with ext3. I'm the filesystem format designer, after all. (run
for your lives...)
You do wind up having to roll your own dcache in userspace, though.
A matter of taste in implementation, but it is not difficult... I've
certainly never been accused of having good taste :)
Nah, you're thinking about something different: a userland NFSD
competing with other userland processes for access to the same files,
while the kernel ultimately manages the filesystem metadata. Recipe for
races and inequities, and it's good we moved away from that.
I'm talking about where a userland process manages the filesystem
metadata too. In a filesystem with a million files, ls(1) on the server
will only show a single file:
[jgarzik@core ~]$ ls -l /spare/fileserver-data/
total 70657116
-rw-r--r-- 1 jgarzik jgarzik 1818064825 2007-12-29 06:40 fsimage.1
Don't get me started on "volatile" versus "persistent" filehandles in
NFSv4... groan.
Jeff
--