From: Orit Wasserman Date: Sun, 11 Jun 2017 12:15:52 +0000 (+0300) Subject: rgw: user const rgw_bucket in quota X-Git-Tag: ses5-milestone7~3^2~5^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b95093356be0c310fd38f4b9eb373ccfcddd5f16;p=ceph.git rgw: user const rgw_bucket in quota Signed-off-by: Orit Wasserman --- diff --git a/src/rgw/rgw_quota.cc b/src/rgw/rgw_quota.cc index 2a1307a1f1a2..370cf3f1a606 100644 --- a/src/rgw/rgw_quota.cc +++ b/src/rgw/rgw_quota.cc @@ -61,12 +61,12 @@ protected: } }; - virtual int fetch_stats_from_storage(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats) = 0; + virtual int fetch_stats_from_storage(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats) = 0; - virtual bool map_find(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs) = 0; + virtual bool map_find(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs) = 0; - virtual bool map_find_and_update(const rgw_user& user, rgw_bucket& bucket, typename lru_map::UpdateContext *ctx) = 0; - virtual void map_add(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs) = 0; + virtual bool map_find_and_update(const rgw_user& user, const rgw_bucket& bucket, typename lru_map::UpdateContext *ctx) = 0; + virtual void map_add(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs) = 0; virtual void data_modified(const rgw_user& user, rgw_bucket& bucket) {} public: @@ -77,13 +77,13 @@ public: async_refcount->put_wait(); /* wait for all pending async requests to complete */ } - int get_stats(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats, RGWQuotaInfo& quota); + int get_stats(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats, RGWQuotaInfo& quota); void adjust_stats(const rgw_user& user, rgw_bucket& bucket, int objs_delta, uint64_t added_bytes, uint64_t removed_bytes); virtual bool can_use_cached_stats(RGWQuotaInfo& quota, RGWStorageStats& stats); - void set_stats(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs, RGWStorageStats& stats); - int async_refresh(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs); + void set_stats(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs, RGWStorageStats& stats); + int async_refresh(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs); void async_refresh_response(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats); class AsyncRefreshHandler { @@ -98,7 +98,7 @@ public: virtual void drop_reference() = 0; }; - virtual AsyncRefreshHandler *allocate_refresh_handler(const rgw_user& user, rgw_bucket& bucket) = 0; + virtual AsyncRefreshHandler *allocate_refresh_handler(const rgw_user& user, const rgw_bucket& bucket) = 0; }; template @@ -133,7 +133,7 @@ bool RGWQuotaCache::can_use_cached_stats(RGWQuotaInfo& quota, RGWStorageStats } template -int RGWQuotaCache::async_refresh(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs) +int RGWQuotaCache::async_refresh(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs) { /* protect against multiple updates */ StatsAsyncTestSet test_update; @@ -172,7 +172,7 @@ void RGWQuotaCache::async_refresh_response(const rgw_user& user, rgw_bucket& } template -void RGWQuotaCache::set_stats(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs, RGWStorageStats& stats) +void RGWQuotaCache::set_stats(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs, RGWStorageStats& stats) { qs.stats = stats; qs.expiration = ceph_clock_now(); @@ -184,7 +184,7 @@ void RGWQuotaCache::set_stats(const rgw_user& user, rgw_bucket& bucket, RGWQu } template -int RGWQuotaCache::get_stats(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats, RGWQuotaInfo& quota) { +int RGWQuotaCache::get_stats(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats, RGWQuotaInfo& quota) { RGWQuotaCacheStats qs; utime_t now = ceph_clock_now(); if (map_find(user, bucket, qs)) { @@ -256,7 +256,7 @@ class BucketAsyncRefreshHandler : public RGWQuotaCache::AsyncRefresh rgw_user user; public: BucketAsyncRefreshHandler(RGWRados *_store, RGWQuotaCache *_cache, - const rgw_user& _user, rgw_bucket& _bucket) : + const rgw_user& _user, const rgw_bucket& _bucket) : RGWQuotaCache::AsyncRefreshHandler(_store, _cache), RGWGetBucketStats_CB(_bucket), user(_user) {} @@ -312,30 +312,30 @@ void BucketAsyncRefreshHandler::handle_response(const int r) class RGWBucketStatsCache : public RGWQuotaCache { protected: - bool map_find(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { + bool map_find(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { return stats_map.find(bucket, qs); } - bool map_find_and_update(const rgw_user& user, rgw_bucket& bucket, lru_map::UpdateContext *ctx) override { + bool map_find_and_update(const rgw_user& user, const rgw_bucket& bucket, lru_map::UpdateContext *ctx) override { return stats_map.find_and_update(bucket, NULL, ctx); } - void map_add(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { + void map_add(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { stats_map.add(bucket, qs); } - int fetch_stats_from_storage(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats) override; + int fetch_stats_from_storage(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats) override; public: explicit RGWBucketStatsCache(RGWRados *_store) : RGWQuotaCache(_store, _store->ctx()->_conf->rgw_bucket_quota_cache_size) { } - AsyncRefreshHandler *allocate_refresh_handler(const rgw_user& user, rgw_bucket& bucket) override { + AsyncRefreshHandler *allocate_refresh_handler(const rgw_user& user, const rgw_bucket& bucket) override { return new BucketAsyncRefreshHandler(store, this, user, bucket); } }; -int RGWBucketStatsCache::fetch_stats_from_storage(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats) +int RGWBucketStatsCache::fetch_stats_from_storage(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats) { RGWBucketInfo bucket_info; @@ -377,7 +377,7 @@ class UserAsyncRefreshHandler : public RGWQuotaCache::AsyncRefreshHand rgw_bucket bucket; public: UserAsyncRefreshHandler(RGWRados *_store, RGWQuotaCache *_cache, - const rgw_user& _user, rgw_bucket& _bucket) : + const rgw_user& _user, const rgw_bucket& _bucket) : RGWQuotaCache::AsyncRefreshHandler(_store, _cache), RGWGetUserStats_CB(_user), bucket(_bucket) {} @@ -505,19 +505,19 @@ class RGWUserStatsCache : public RGWQuotaCache { BucketsSyncThread *buckets_sync_thread; UserSyncThread *user_sync_thread; protected: - bool map_find(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { + bool map_find(const rgw_user& user,const rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { return stats_map.find(user, qs); } - bool map_find_and_update(const rgw_user& user, rgw_bucket& bucket, lru_map::UpdateContext *ctx) override { + bool map_find_and_update(const rgw_user& user, const rgw_bucket& bucket, lru_map::UpdateContext *ctx) override { return stats_map.find_and_update(user, NULL, ctx); } - void map_add(const rgw_user& user, rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { + void map_add(const rgw_user& user, const rgw_bucket& bucket, RGWQuotaCacheStats& qs) override { stats_map.add(user, qs); } - int fetch_stats_from_storage(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats) override; + int fetch_stats_from_storage(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats) override; int sync_bucket(const rgw_user& rgw_user, rgw_bucket& bucket); int sync_user(const rgw_user& user); int sync_all_users(); @@ -559,7 +559,7 @@ public: stop(); } - AsyncRefreshHandler *allocate_refresh_handler(const rgw_user& user, rgw_bucket& bucket) override { + AsyncRefreshHandler *allocate_refresh_handler(const rgw_user& user, const rgw_bucket& bucket) override { return new UserAsyncRefreshHandler(store, this, user, bucket); } @@ -583,7 +583,7 @@ public: } }; -int RGWUserStatsCache::fetch_stats_from_storage(const rgw_user& user, rgw_bucket& bucket, RGWStorageStats& stats) +int RGWUserStatsCache::fetch_stats_from_storage(const rgw_user& user, const rgw_bucket& bucket, RGWStorageStats& stats) { int r = store->get_user_stats(user, stats); if (r < 0) { @@ -941,7 +941,7 @@ public: } int check_bucket_shards(uint64_t max_objs_per_shard, uint64_t num_shards, - const rgw_user& user, rgw_bucket& bucket, RGWQuotaInfo& bucket_quota, + const rgw_user& user, const rgw_bucket& bucket, RGWQuotaInfo& bucket_quota, uint64_t num_objs, bool& need_resharding, uint32_t *suggested_num_shards) { RGWStorageStats bucket_stats; diff --git a/src/rgw/rgw_quota.h b/src/rgw/rgw_quota.h index fd2d227fba0c..49ec14871815 100644 --- a/src/rgw/rgw_quota.h +++ b/src/rgw/rgw_quota.h @@ -104,7 +104,7 @@ public: uint64_t num_objs, uint64_t size) = 0; virtual int check_bucket_shards(uint64_t max_objs_per_shard, uint64_t num_shards, - const rgw_user& bucket_owner, rgw_bucket& bucket, + const rgw_user& bucket_owner, const rgw_bucket& bucket, RGWQuotaInfo& bucket_quota, uint64_t num_objs, bool& need_resharding, uint32_t *suggested_num_shards) = 0; diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 7c6c98821aca..721fc30f5a2c 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -13101,7 +13101,7 @@ int RGWRados::cls_user_remove_bucket(rgw_raw_obj& obj, const cls_user_bucket& bu return 0; } -int RGWRados::check_bucket_shards(const RGWBucketInfo& bucket_info, rgw_bucket& bucket, +int RGWRados::check_bucket_shards(const RGWBucketInfo& bucket_info, const rgw_bucket& bucket, RGWQuotaInfo& bucket_quota) { if (!cct->_conf->rgw_dynamic_resharding) { diff --git a/src/rgw/rgw_rados.h b/src/rgw/rgw_rados.h index ca476a2c207f..9ac40e185921 100644 --- a/src/rgw/rgw_rados.h +++ b/src/rgw/rgw_rados.h @@ -2046,7 +2046,7 @@ protected: rgw_bucket bucket; map *stats; public: - explicit RGWGetBucketStats_CB(rgw_bucket& _bucket) : bucket(_bucket), stats(NULL) {} + explicit RGWGetBucketStats_CB(const rgw_bucket& _bucket) : bucket(_bucket), stats(NULL) {} ~RGWGetBucketStats_CB() override {} virtual void handle_response(int r) = 0; virtual void set_response(map *_stats) { @@ -3503,7 +3503,7 @@ public: int check_quota(const rgw_user& bucket_owner, rgw_bucket& bucket, RGWQuotaInfo& user_quota, RGWQuotaInfo& bucket_quota, uint64_t obj_size); - int check_bucket_shards(const RGWBucketInfo& bucket_info, rgw_bucket& bucket, + int check_bucket_shards(const RGWBucketInfo& bucket_info, const rgw_bucket& bucket, RGWQuotaInfo& bucket_quota); int add_bucket_to_reshard(const RGWBucketInfo& bucket_info, uint32_t new_num_shards);