From b02b178f29f225e851c0e4a399eab8bd80c4aefd Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Tue, 11 Feb 2020 10:04:20 -0500 Subject: [PATCH] rgw: only trim data/bilogs if the local zone exports data Signed-off-by: Casey Bodley --- src/rgw/rgw_rados.cc | 18 ++++++++++-------- src/rgw/services/svc_zone.cc | 6 +----- src/rgw/services/svc_zone.h | 4 +++- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 04e43ac6d6b..88ca696e6c3 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -589,15 +589,17 @@ public: trim_interval)); stacks.push_back(meta); - auto data = new RGWCoroutinesStack(store->ctx(), &crs); - data->call(create_data_log_trim_cr(store, &http, - cct->_conf->rgw_data_log_num_shards, - trim_interval)); - stacks.push_back(data); + if (store->svc()->zone->sync_module_exports_data()) { + auto data = new RGWCoroutinesStack(store->ctx(), &crs); + data->call(create_data_log_trim_cr(store, &http, + cct->_conf->rgw_data_log_num_shards, + trim_interval)); + stacks.push_back(data); - auto bucket = new RGWCoroutinesStack(store->ctx(), &crs); - bucket->call(bucket_trim->create_bucket_trim_cr(&http)); - stacks.push_back(bucket); + auto bucket = new RGWCoroutinesStack(store->ctx(), &crs); + bucket->call(bucket_trim->create_bucket_trim_cr(&http)); + stacks.push_back(bucket); + } crs.run(stacks); return 0; diff --git a/src/rgw/services/svc_zone.cc b/src/rgw/services/svc_zone.cc index db44bc192fd..df538693051 100644 --- a/src/rgw/services/svc_zone.cc +++ b/src/rgw/services/svc_zone.cc @@ -202,6 +202,7 @@ int RGWSI_Zone::do_start() } writeable_zone = sm->supports_writes(); + exports_data = sm->supports_data_export(); /* first build all zones index */ for (auto ziter : zonegroup->zones) { @@ -883,11 +884,6 @@ bool RGWSI_Zone::zone_is_writeable() return writeable_zone && !get_zone().is_read_only(); } -bool RGWSI_Zone::sync_module_supports_writes() const -{ - return writeable_zone; -} - uint32_t RGWSI_Zone::get_zone_short_id() const { return zone_short_id; diff --git a/src/rgw/services/svc_zone.h b/src/rgw/services/svc_zone.h index 5a51b6de253..982ab8a8d27 100644 --- a/src/rgw/services/svc_zone.h +++ b/src/rgw/services/svc_zone.h @@ -41,6 +41,7 @@ class RGWSI_Zone : public RGWServiceInstance rgw_zone_id cur_zone_id; uint32_t zone_short_id{0}; bool writeable_zone{false}; + bool exports_data{false}; std::shared_ptr sync_policy_handler; std::map > sync_policy_handlers; @@ -94,7 +95,8 @@ public: bool zone_is_writeable(); bool zone_syncs_from(const RGWZone& target_zone, const RGWZone& source_zone) const; bool get_redirect_zone_endpoint(string *endpoint); - bool sync_module_supports_writes() const; + bool sync_module_supports_writes() const { return writeable_zone; } + bool sync_module_exports_data() const { return exports_data; } RGWRESTConn *get_master_conn() { return rest_master_conn; -- 2.39.5