[ARVADOS] created: 2.1.0-780-gfc0e9f360
Git user
git at public.arvados.org
Tue May 11 20:38:49 UTC 2021
at fc0e9f360dd51c5c508426846f2caed9f1c2ec66 (commit)
commit fc0e9f360dd51c5c508426846f2caed9f1c2ec66
Author: Peter Amstutz <peter.amstutz at curii.com>
Date: Tue May 11 16:29:40 2021 -0400
17589: Use more efficient & stable keyset paging.
Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <peter.amstutz at curii.com>
diff --git a/services/fuse/arvados_fuse/fusedir.py b/services/fuse/arvados_fuse/fusedir.py
index e8da789fa..a2e3ac139 100644
--- a/services/fuse/arvados_fuse/fusedir.py
+++ b/services/fuse/arvados_fuse/fusedir.py
@@ -895,15 +895,17 @@ class ProjectDirectory(Directory):
self.project_object = self.api.users().get(
uuid=self.project_uuid).execute(num_retries=self.num_retries)
# do this in 2 steps until #17424 is fixed
- contents = arvados.util.list_all(self.api.groups().contents,
- self.num_retries,
- uuid=self.project_uuid,
- filters=[["uuid", "is_a", "arvados#group"],
- ["groups.group_class", "in", ["project","filter"]]])
- contents.extend(arvados.util.list_all(self.api.groups().contents,
- self.num_retries,
- uuid=self.project_uuid,
- filters=[["uuid", "is_a", "arvados#collection"]]))
+ contents = list(arvados.util.keyset_list_all(self.api.groups().contents,
+ order_key="uuid",
+ num_retries=self.num_retries,
+ uuid=self.project_uuid,
+ filters=[["uuid", "is_a", "arvados#group"],
+ ["groups.group_class", "in", ["project","filter"]]]))
+ contents.extend(arvados.util.keyset_list_all(self.api.groups().contents,
+ order_key="uuid",
+ num_retries=self.num_retries,
+ uuid=self.project_uuid,
+ filters=[["uuid", "is_a", "arvados#collection"]]))
# end with llfuse.lock_released, re-acquire lock
@@ -1118,10 +1120,12 @@ class SharedDirectory(Directory):
objects[r["uuid"]] = r
root_owners.add(r["uuid"])
else:
- all_projects = arvados.util.list_all(
- self.api.groups().list, self.num_retries,
+ all_projects = list(arvados.util.keyset_list_all(
+ self.api.groups().list,
+ order_key="uuid",
+ num_retries=self.num_retries,
filters=[['group_class','in',['project','filter']]],
- select=["uuid", "owner_uuid"])
+ select=["uuid", "owner_uuid"]))
for ob in all_projects:
objects[ob['uuid']] = ob
@@ -1131,11 +1135,15 @@ class SharedDirectory(Directory):
roots.append(ob['uuid'])
root_owners.add(ob['owner_uuid'])
- lusers = arvados.util.list_all(
- self.api.users().list, self.num_retries,
+ lusers = arvados.util.keyset_list_all(
+ self.api.users().list,
+ order_key="uuid",
+ num_retries=self.num_retries,
filters=[['uuid','in', list(root_owners)]])
- lgroups = arvados.util.list_all(
- self.api.groups().list, self.num_retries,
+ lgroups = arvados.util.keyset_list_all(
+ self.api.groups().list,
+ order_key="uuid",
+ num_retries=self.num_retries,
filters=[['uuid','in', list(root_owners)+roots]])
for l in lusers:
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list