[ARVADOS] updated: 1.1.3-89-g6a731b2
Git user
git at public.curoverse.com
Fri Feb 23 11:15:56 EST 2018
Summary of changes:
sdk/python/arvados/arvfile.py | 3 +++
sdk/python/arvados/collection.py | 10 +++++++---
services/fuse/arvados_fuse/__init__.py | 27 +++++++++++++++++++++++----
services/fuse/arvados_fuse/fresh.py | 4 ++++
services/fuse/arvados_fuse/fusefile.py | 4 ++++
5 files changed, 41 insertions(+), 7 deletions(-)
via 6a731b2dd982f3453db9f5b6fcf6350899da48a8 (commit)
via f594d47faa4c606ccbfda0e1bcaac58552e4732d (commit)
via 52f37db5889f22e4dc02e0e468d561783e76c188 (commit)
via 92002b9af320e3229f59ca0778d1906e663f3066 (commit)
via 6509f6ec0a997f74b9992b8ef9acb7ae0dbd8c7a (commit)
from b77a0df5575eb4d75b21b5c400fc8570efc97cea (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
commit 6a731b2dd982f3453db9f5b6fcf6350899da48a8
Merge: b77a0df f594d47
Author: Peter Amstutz <pamstutz at veritasgenetics.com>
Date: Fri Feb 23 11:15:44 2018 -0500
Merge branch '13064-arv-mount-perf' closes #13064
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz at veritasgenetics.com>
commit f594d47faa4c606ccbfda0e1bcaac58552e4732d
Author: Peter Amstutz <pamstutz at veritasgenetics.com>
Date: Fri Feb 23 11:15:03 2018 -0500
13064: Add comment about has_ref() and in_use() checks
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz at veritasgenetics.com>
diff --git a/services/fuse/arvados_fuse/__init__.py b/services/fuse/arvados_fuse/__init__.py
index 3313e5a..f1e49f5 100644
--- a/services/fuse/arvados_fuse/__init__.py
+++ b/services/fuse/arvados_fuse/__init__.py
@@ -156,6 +156,22 @@ class InodeCache(object):
def _remove(self, obj, clear):
if clear:
+ # Kernel behavior seems to be that if a file is
+ # referenced, its parents remain referenced too. This
+ # means has_ref() exits early when a collection is not
+ # candidate for eviction.
+ #
+ # By contrast, in_use() doesn't increment references on
+ # parents, so it requires a full tree walk to determine if
+ # a collection is a candidate for eviction. This takes
+ # .07s for 240000 files, which becomes a major drag when
+ # cap_cache is being called several times a second and
+ # there are multiple non-evictable collections in the
+ # cache.
+ #
+ # So it is important for performance that we do the
+ # has_ref() check first.
+
if obj.has_ref(True):
_logger.debug("InodeCache cannot clear inode %i, still referenced", obj.inode)
return
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list