From: Casey Bodley Date: Thu, 20 Sep 2018 15:37:06 +0000 (-0400) Subject: rgw: remove BucketChangeObserver from data sync thread X-Git-Tag: v12.2.9~21^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=b40121767e46b44a2ac27d8f93c4921c5716c595;p=ceph.git rgw: remove BucketChangeObserver from data sync thread Signed-off-by: Casey Bodley (cherry picked from commit f05db89637d280505321708683182f0f2c886208) Conflicts: src/rgw/rgw_data_sync.cc src/rgw/rgw_data_sync.h - argument lists are different in luminous, compared to master --- diff --git a/src/rgw/rgw_data_sync.cc b/src/rgw/rgw_data_sync.cc index 4a63161d1ab38..f46ac90366bae 100644 --- a/src/rgw/rgw_data_sync.cc +++ b/src/rgw/rgw_data_sync.cc @@ -649,7 +649,7 @@ int RGWRemoteDataLog::read_source_log_shards_next(map shard_markers int RGWRemoteDataLog::init(const string& _source_zone, RGWRESTConn *_conn, RGWSyncErrorLogger *_error_logger, RGWSyncModuleInstanceRef& _sync_module) { sync_env.init(store->ctx(), store, _conn, async_rados, &http_manager, _error_logger, - _source_zone, _sync_module, observer); + _source_zone, _sync_module); if (initialized) { return 0; @@ -1070,9 +1070,6 @@ public: << error_repo->get_obj() << " retcode=" << retcode << dendl; } } - if (sync_env->observer) { - sync_env->observer->on_bucket_changed(bs.bucket.get_key()); - } /* FIXME: what do do in case of error */ if (marker_tracker && !entry_marker.empty()) { /* update marker */ @@ -1788,7 +1785,7 @@ int RGWRemoteBucketLog::init(const string& _source_zone, RGWRESTConn *_conn, bs.shard_id = shard_id; sync_env.init(store->ctx(), store, conn, async_rados, http_manager, - _error_logger, source_zone, _sync_module, nullptr); + _error_logger, source_zone, _sync_module); return 0; } @@ -3238,7 +3235,7 @@ int rgw_bucket_sync_status(RGWRados *store, const std::string& source_zone, RGWDataSyncEnv env; RGWSyncModuleInstanceRef module; // null sync module env.init(store->ctx(), store, nullptr, store->get_async_rados(), - nullptr, nullptr, source_zone, module, nullptr); + nullptr, nullptr, source_zone, module); RGWCoroutinesManager crs(store->ctx(), store->get_cr_registry()); return crs.run(new RGWCollectBucketSyncStatusCR(store, &env, num_shards, diff --git a/src/rgw/rgw_data_sync.h b/src/rgw/rgw_data_sync.h index a85a155aa109a..83f75c925578c 100644 --- a/src/rgw/rgw_data_sync.h +++ b/src/rgw/rgw_data_sync.h @@ -10,10 +10,6 @@ #include "common/RWLock.h" #include "common/ceph_json.h" -namespace rgw { -class BucketChangeObserver; -} - struct rgw_datalog_info { uint32_t num_shards; @@ -238,15 +234,13 @@ struct RGWDataSyncEnv { RGWSyncErrorLogger *error_logger; string source_zone; RGWSyncModuleInstanceRef sync_module; - rgw::BucketChangeObserver *observer{nullptr}; RGWDataSyncEnv() : cct(NULL), store(NULL), conn(NULL), async_rados(NULL), http_manager(NULL), error_logger(NULL), sync_module(NULL) {} void init(CephContext *_cct, RGWRados *_store, RGWRESTConn *_conn, RGWAsyncRadosProcessor *_async_rados, RGWHTTPManager *_http_manager, RGWSyncErrorLogger *_error_logger, const string& _source_zone, - RGWSyncModuleInstanceRef& _sync_module, - rgw::BucketChangeObserver *_observer) { + RGWSyncModuleInstanceRef& _sync_module) { cct = _cct; store = _store; conn = _conn; @@ -255,7 +249,6 @@ struct RGWDataSyncEnv { error_logger = _error_logger; source_zone = _source_zone; sync_module = _sync_module; - observer = _observer; } string shard_obj_name(int shard_id); @@ -265,7 +258,6 @@ struct RGWDataSyncEnv { class RGWRemoteDataLog : public RGWCoroutinesManager { RGWRados *store; RGWAsyncRadosProcessor *async_rados; - rgw::BucketChangeObserver *observer; RGWHTTPManager http_manager; RGWDataSyncEnv sync_env; @@ -276,10 +268,9 @@ class RGWRemoteDataLog : public RGWCoroutinesManager { bool initialized; public: - RGWRemoteDataLog(RGWRados *_store, RGWAsyncRadosProcessor *async_rados, - rgw::BucketChangeObserver *observer) + RGWRemoteDataLog(RGWRados *_store, RGWAsyncRadosProcessor *async_rados) : RGWCoroutinesManager(_store->ctx(), _store->get_cr_registry()), - store(_store), async_rados(async_rados), observer(observer), + store(_store), async_rados(async_rados), http_manager(store->ctx(), completion_mgr), lock("RGWRemoteDataLog::lock"), data_sync_cr(NULL), initialized(false) {} @@ -318,17 +309,15 @@ class RGWDataSyncStatusManager { public: RGWDataSyncStatusManager(RGWRados *_store, RGWAsyncRadosProcessor *async_rados, - const string& _source_zone, - rgw::BucketChangeObserver *observer = nullptr) + const string& _source_zone) : store(_store), source_zone(_source_zone), conn(NULL), error_logger(NULL), sync_module(nullptr), - source_log(store, async_rados, observer), num_shards(0) {} + source_log(store, async_rados), num_shards(0) {} RGWDataSyncStatusManager(RGWRados *_store, RGWAsyncRadosProcessor *async_rados, - const string& _source_zone, const RGWSyncModuleInstanceRef& _sync_module, - rgw::BucketChangeObserver *observer = nullptr) + const string& _source_zone, const RGWSyncModuleInstanceRef& _sync_module) : store(_store), source_zone(_source_zone), conn(NULL), error_logger(NULL), sync_module(_sync_module), - source_log(store, async_rados, observer), num_shards(0) {} + source_log(store, async_rados), num_shards(0) {} ~RGWDataSyncStatusManager() { finalize(); } diff --git a/src/rgw/rgw_rados.cc b/src/rgw/rgw_rados.cc index 8a9cd5bef8f2f..f123514e470e2 100644 --- a/src/rgw/rgw_rados.cc +++ b/src/rgw/rgw_rados.cc @@ -3239,10 +3239,9 @@ class RGWDataSyncProcessorThread : public RGWSyncProcessorThread } public: RGWDataSyncProcessorThread(RGWRados *_store, RGWAsyncRadosProcessor *async_rados, - const string& _source_zone, - rgw::BucketChangeObserver *observer) + const string& _source_zone) : RGWSyncProcessorThread(_store, "data-sync"), - sync(_store, async_rados, _source_zone, observer), + sync(_store, async_rados, _source_zone), initialized(false) {} void wakeup_sync_shards(map >& shard_ids) { @@ -4605,8 +4604,7 @@ int RGWRados::init_complete() Mutex::Locker dl(data_sync_thread_lock); for (auto iter : zone_data_sync_from_map) { ldout(cct, 5) << "starting data sync thread for zone " << iter.first << dendl; - auto *thread = new RGWDataSyncProcessorThread(this, async_rados, iter.first, - &*bucket_trim); + auto *thread = new RGWDataSyncProcessorThread(this, async_rados, iter.first); ret = thread->init(); if (ret < 0) { ldout(cct, 0) << "ERROR: failed to initialize data sync thread" << dendl;