Make ndblib not reopen and reread files all the time.
authorRonald G. Minnich <rminnich@google.com>
Thu, 17 Apr 2014 19:00:45 +0000 (12:00 -0700)
committerRonald G. Minnich <rminnich@google.com>
Thu, 17 Apr 2014 19:00:45 +0000 (12:00 -0700)
commit15c68e4ab34a2821455caf50ba8c219056c75327
tree1f9586779aba01ee8911a02d56b7fb355c34d163
parentdd7547b8fc546ca65169707fd23277b2931782a0
Make ndblib not reopen and reread files all the time.

Sadly, stat(2) returns 0 for mtime still. So we've got some
nasty hacks in here to make sure we only read files once. We'll
need to come back to this or better yet rewrite this mess in Go.
It's the 21st century and it's silly not to cache everything, and
it's super silly to write code like this in C.

Result:
cs&
mount -a '#s/cs' /net
csquery /net/cs tcp!localhost!22

The first time, it is slow, as it is now. Subsequent
csquery commands, if it hits the cache, are quite fast,
basically intantaneous, even in qemu.
This should make go test much more palatable.

Signed-off-by: Ronald G. Minnich <rminnich@google.com>
user/ndblib/ndbhash.c
user/ndblib/ndbopen.c