Nicolas Williams wrote: > On Mon, Jul 28, 2008 at 01:31:51PM -0700, Garrett D'Amore wrote: > >> I confess that I didn't realize we lacked client side caching in our >> NFSv4. I thought client side caching was one of the significant >> benefits that NFSv4 brought to the table (mainly to compete with the >> likes of AFS and DFS). >> > > Let's be precise. The NFSv4 client caches plenty, just not on long-term > local storage (which is what cachefs was for). > How much data is cached by NFSv4? With cachefs you could set up fairly large (100's or 1000's of MB) local cache, so for data that didn't change often you almost never had to go to the network for anything (other than a stat()-like check.)
Its a shame to lose the entire cache on a reboot, but potentially this might be acceptable for some use cases. (For others, its clearly inferior -- think of the mobile laptop that gets powered off frequently.... or even the power conscious desktop user. Even Suspend-to-RAM requires some power, and we don't have universal support for it everywhere.) > >> If we don't have client side caching in NFSv4, then I too worry that the >> loss of functionality will leave us with a potentially significant >> architectural hole. >> > > It's a small gap. > > I think where it really matters one might use ZFS with iSCSI vdevs and a > local L2ARC device. > An interesting idea. I am not too familiar with iSCSI, but don't you need an iSCSI target? I'm not sure, is iSCSI seeing deployment outside of the data center? (NFS is designed to support concurrent network use and reasonably handles multiple "intiators". How does iSCSI deal with such a situation?) I'd be happy to see a whitepaper or some kind of transition document with the case, describing (ideally in terms a customer should be able to understand) how to transition from cachefs to some other strategy (iSCSI, NFSv4, whatever). I don't know how to make the same functionality (NFS like) work with iSCSI, but I'll chalk that up to my own ignorance rather than any deficiency in iSCSI. It would be nice to see a commitment to closing any remaining gap as much as possible, perhaps by further development of NFSv4 -- as others have suggested. As a final note, I do recall that cachefs was supposed to be generic for things like cdroms, etc. I do agree with the proposal that cachefs like behavior for anything *other than NFS* is probably not terribly interesting. -- Garrett