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