12276: Reduce number of spurious invalidations sent to kernel.
authorPeter Amstutz <peter.amstutz@curoverse.com>
Fri, 22 Sep 2017 15:21:07 +0000 (11:21 -0400)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Fri, 22 Sep 2017 18:15:27 +0000 (14:15 -0400)
commit6bfb4fc09e5b6f1f54c784dd1f7e2c6700020bb3
treeb2015ce6824f04a3f1293f13eca5873845f10a37
parent89e5fd8e01bc09000e3cc7298e3b4f77a49200e0
12276: Reduce number of spurious invalidations sent to kernel.

* New policy to only send invalidations on objects that have a nonzero
  kernel reference count.
* When clearing the contents of a CollectionDirectory, only invalidate the
  topmost directory entry, this should take care of invalidating all paths
  beneath it as well.
* Don't send invalidate_inode() when deleting an inode (by definition, the
  inode is unreferenced by the kernel).
* Remove allow_dirent_cache for now (this only relates to caching negative
  lookups, which we don't support).
* Set attribute attr_timeout based on the polling period of the underlying
  object.
* FuncToJSONFile sets allow_attr_cache = False instead of allow_dirent_cache =
  False (which is useless in this case).

Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz@veritasgenetics.com>
services/fuse/arvados_fuse/__init__.py
services/fuse/arvados_fuse/fresh.py
services/fuse/arvados_fuse/fusedir.py
services/fuse/arvados_fuse/fusefile.py