jacobsa/fuse

Implementing InvalidateNode/InvalidateEntry

complyue opened this issue · 1 comments

Thanks for sharing this wonderful library in Go.

I'd like to query if any one is working on implementating InvalidateNode/InvalidateEntry here? I see #61 basically asked the same but stay open atm.

This has been implemented in bazil.org/fuse (which I suppose is the kernel part's upstream):
https://github.com/bazil/fuse/blob/65cc252bf6691cb3c7014bcb2c8dc29de91e3a7e/fuse.go#L1156

I think porting that implementation here and make all tests pass should be enough. If no other one is working on it, I'd like to draft a PR for review, but your directions & suggestions should be helpful before I start the work.

Background info is, I'm writing a homegrown array database, that based on ZFS files shared over NFS to many computing nodes. But close-to-open cache consistency of NFS is becoming a problem, and I'd take the chance to map may small array data files into few large virtual data files to be mmap'ed, so inode invalidation is a tight requirement. And since ZFS already been the inode/unix thing, the approach at bazil that to manage virtual inodes on the fly feels inappropriate.

There is #35, which I just gave another look. If you’re interested in helping on that PR, please say so in the PR thread :)

Closing this issue as a duplicate of #61