From a465395ce532b72b4c75958945345025b29df645 Mon Sep 17 00:00:00 2001 From: liuchang0812 Date: Thu, 16 Mar 2017 11:59:25 +0800 Subject: [PATCH] rgw: optimize rgw performance, avoid unnecessary bucket list and memory copy We do not use buckets_vec in following code, and rgw_read_user_buckets with `need_stats=false` will not modify other variables. So we could remove this bucket-listing code, get better performance. Signed-off-by: liuchang0812 --- src/rgw/rgw_user.cc | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/src/rgw/rgw_user.cc b/src/rgw/rgw_user.cc index 162e1b7189c..cbc2c248f4e 100644 --- a/src/rgw/rgw_user.cc +++ b/src/rgw/rgw_user.cc @@ -404,34 +404,7 @@ int rgw_remove_swift_name_index(RGWRados *store, string& swift_name) * themselves alone, as well as any ACLs embedded in object xattrs. */ int rgw_delete_user(RGWRados *store, RGWUserInfo& info, RGWObjVersionTracker& objv_tracker) { - string marker; - vector buckets_vec; - - bool done; - bool is_truncated; int ret; - CephContext *cct = store->ctx(); - size_t max_buckets = cct->_conf->rgw_list_buckets_max_chunk; - - do { - RGWUserBuckets user_buckets; - ret = rgw_read_user_buckets(store, info.user_id, user_buckets, marker, - string(), max_buckets, false, &is_truncated); - if (ret < 0) - return ret; - - map& buckets = user_buckets.get_buckets(); - for (map::iterator i = buckets.begin(); - i != buckets.end(); - ++i) { - RGWBucketEnt& bucket = i->second; - buckets_vec.push_back(bucket.bucket); - - marker = i->first; - } - - done = (buckets.size() < max_buckets); - } while (!done); map::iterator kiter = info.access_keys.begin(); for (; kiter != info.access_keys.end(); ++kiter) { -- 2.39.5