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.