public:
RGWArchiveDataSyncModule() {}
- void init(RGWDataSyncEnv *sync_env, uint64_t instance_id) override;
-
RGWCoroutine *sync_object(RGWDataSyncEnv *sync_env, RGWBucketInfo& bucket_info, rgw_obj_key& key, std::optional<uint64_t> versioned_epoch, rgw_zone_set *zones_trace) override;
RGWCoroutine *remove_object(RGWDataSyncEnv *sync_env, RGWBucketInfo& bucket_info, rgw_obj_key& key, real_time& mtime, bool versioned, uint64_t versioned_epoch, rgw_zone_set *zones_trace) override;
RGWCoroutine *create_delete_marker(RGWDataSyncEnv *sync_env, RGWBucketInfo& bucket_info, rgw_obj_key& key, real_time& mtime,
return 0;
}
-void RGWArchiveDataSyncModule::init(RGWDataSyncEnv *sync_env, uint64_t instance_id) {
-
- ldout(sync_env->cct, 0) << "Switching to archive zone metadata manager" << dendl;
-
- // FIXME: this code crashes... migrating the current state (handles, md_logs,
- // current_log...) in meta_mgr raises errors (threads, locks ...)
-
- //RGWMetadataManager *current_meta_mgr = sync_env->store->meta_mgr;
- //RGWMetadataManager *new_meta_mgr = new RGWArchiveMetadataManager(sync_env->cct, sync_env->store);
- //new_meta_mgr.update_state_from(current_meta_mgr);
- //delete current_meta_mgr;
- //current_meta_mgr = new_meta_mgr;
-}
-
RGWCoroutine *RGWArchiveDataSyncModule::sync_object(RGWDataSyncEnv *sync_env, RGWBucketInfo& bucket_info, rgw_obj_key& key, std::optional<uint64_t> versioned_epoch, rgw_zone_set *zones_trace)
{
ldout(sync_env->cct, 0) << "SYNC_ARCHIVE: sync_object: b=" << bucket_info.bucket << " k=" << key << " versioned_epoch=" << versioned_epoch.value_or(0) << dendl;
{
}
-RGWArchiveMetadataManager::RGWArchiveMetadataManager(CephContext *_cct, RGWRados *_store)
- : RGWMetadataManager(_cct, _store)
-{
- ldout(store->ctx(), 0) << "RGWArchiveMetadataManager() constructor check" << dendl;
-}
-
RGWMetadataManager::~RGWMetadataManager()
{
map<string, RGWMetadataHandler *>::iterator iter;
class RGWMetadataManager {
map<string, RGWMetadataHandler *> handlers;
+ CephContext *cct;
+ RGWRados *store;
// maintain a separate metadata log for each period
std::map<std::string, RGWMetadataLog> md_logs;
RGWObjVersionTracker *objv_tracker,
RGWMetadataHandler::sync_type_t sync_mode);
-protected:
- CephContext *cct;
- RGWRados *store;
-
public:
RGWMetadataManager(CephContext *_cct, RGWRados *_store);
~RGWMetadataManager();
return 0;
}
-class RGWArchiveMetadataManager : public RGWMetadataManager {
-public:
- RGWArchiveMetadataManager(CephContext *_cct, RGWRados *_store);
-};
-
#endif