Hi everyone,

I'm a software engineer at Google, working on cloud and NFS related projects. I've been working with the Ganesha codebase to implement data caching as stackable FSALs. These can be stacked onto any other FSAL, but my immediate goal is to use this on top of FSAL_PROXY. That turns Ganesha into an efficient NFS caching proxy across WAN links, for example between different on-premise locations and/or cloud providers.

I've got a few patches that I'd like to contribute to the main code base:
1. A small change to make FSAL_NULL reusable.
2. Add a generic FSAL_DATACACHE for the caching logic.
3. Add specific cache implementation. I've implemented two: Memcache and local disk/ssd.

It would probably makes sense to implement some a ram only cache as well. Memcache may sound like a strange choice, but is interesting because of the scale out nature, and that it's already battle tested in large scale production. Initial performance with memcache/ssd caches looks really good: I'm getting up to 1.5 GB/s for streaming reads, which is slightly better than I get from the kernel NFS server serving from ram.

I'm based in Sydney, Australia, so it's tricky for me to join the weekly call, which is ~2.30am my time. I'm currently in the US and plan to join the weekly call on Tuesday.

Cheers,
Bjorn