diff options
author | Prashanth Pai <ppai@redhat.com> | 2016-02-23 14:58:06 +0530 |
---|---|---|
committer | Thiago da Silva <thiago@redhat.com> | 2016-04-04 09:24:42 -0700 |
commit | c73037e90c3f551caf18df41efd7fa9750454a10 (patch) | |
tree | 4d9120b70d2e83d7240130522893986aaf9c0118 /gluster/swift/common/utils.py | |
parent | 539d20e3b13096cfa9107fc2b619943c494c4ab3 (diff) |
Don't fetch metadata for plain container listing
Fetch metadata (xattr) for containers in an account ONLY when the client
asks for it (using content-type indicating JSON or XML response).
This avoids a lot of unnecessarry stat() and getxattr() calls whose
results would anyways be unused. The performance gain is obvious in this
case.
This change is restricted to container listing. The same can be extended
to object listing as well (will be sent as a separate change)
Change-Id: Ibff1c5a90519f11053c0b651d8ea3385dda43a2f
Signed-off-by: Prashanth Pai <ppai@redhat.com>
Reviewed-on: http://review.gluster.org/13497
Reviewed-by: Thiago da Silva <thiago@redhat.com>
Tested-by: Thiago da Silva <thiago@redhat.com>
Diffstat (limited to 'gluster/swift/common/utils.py')
-rw-r--r-- | gluster/swift/common/utils.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gluster/swift/common/utils.py b/gluster/swift/common/utils.py index ded2f0b..8958717 100644 --- a/gluster/swift/common/utils.py +++ b/gluster/swift/common/utils.py @@ -375,7 +375,6 @@ def get_account_details(acc_path): Return container_list and container_count. """ container_list = [] - container_count = 0 if do_isdir(acc_path): for name in do_listdir(acc_path): @@ -383,11 +382,12 @@ def get_account_details(acc_path): or name.lower() == ASYNCDIR \ or name.lower() == TRASHCAN \ or not do_isdir(os.path.join(acc_path, name)): + # Do not include .async_pending, .trashcan and all + # non-directories in containers list continue - container_count += 1 container_list.append(name) - return container_list, container_count + return container_list, len(container_list) def _read_for_etag(fp): |