You know what they say about pictures... :-)
One thing that you have to remember: my test setup is pretty much the
worst-case for being appropriate for showing the need for caching to improve
performance. There's a single client and a single server, they've got GigE
networking between them that has very little other load, and the server has
sufficient memory to hold the entire test data set.
Not really, it's just that this lashup could be considered designed to show
local caching in the worst light.
The problem is that you have to do a database lookup of some sort, possibly
involving several synchronous disk operations.
CacheFiles does a disk lookup by taking the key given to it by NFS, turning it
into a set of file or directory names, and doing a short pathwalk to the target
cache file. Throwing in extra indices won't necessarily help. What matters is
how quick the backing filesystem is at doing lookups. As it turns out, Ext3 is
a fair bit better then BTRFS when the disk cache is cold.
What 'it'? Note that the get the filehandle, you have to do a LOOKUP op. With
the cache, we could actually cache the results of lookups that we've done,
however, we don't know that the results are still valid without going to the
server:-/
AFS has a way around that - it versions its vnode (inode) IDs.
Where "lookup table" == "dcache". That would be good yes. cachefilesd
prescans all the files in the cache, which ought to do just that, but it
doesn't seem to be very effective. I'm not sure why.
Quite possibly. It'll allow me to dispense with at least one fs lookup call
per cache object request call.
I'm not sure what you mean. Your statement should probably read "... to
determine _what_ you should read from the local cache".
Keeping quiet as far as I can tell.
David
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html