diff --git a/mittest/simple_server/test_ls_recover.cpp b/mittest/simple_server/test_ls_recover.cpp index 13fd5047f2..8e910e815d 100644 --- a/mittest/simple_server/test_ls_recover.cpp +++ b/mittest/simple_server/test_ls_recover.cpp @@ -356,7 +356,6 @@ TEST_F(ObLSBeforeRestartTest, create_unfinished_ls_with_commit_slog) ObLSService* ls_svr = MTL(ObLSService*); ObLSID id_103(103); palf::PalfBaseInfo palf_base_info; - int64_t create_type = ObLSCreateType::NORMAL; const ObMigrationStatus migration_status = ObMigrationStatus::OB_MIGRATION_STATUS_NONE; LOG_INFO("ObLSBeforeRestartTest::create_unfinished_ls_with_inner_tablet 1"); @@ -379,7 +378,7 @@ TEST_F(ObLSBeforeRestartTest, create_unfinished_ls_with_commit_slog) unused_allow_log_sync)); ASSERT_EQ(OB_SUCCESS, ls->create_ls_inner_tablet(arg.get_compat_mode(), arg.get_create_scn())); - ASSERT_EQ(OB_SUCCESS, ls_svr->write_commit_create_ls_slog_(ls->get_ls_id(), create_type)); + ASSERT_EQ(OB_SUCCESS, ls_svr->write_commit_create_ls_slog_(ls->get_ls_id())); } // this ls will be offlined state after restart @@ -418,7 +417,7 @@ TEST_F(ObLSBeforeRestartTest, create_restore_ls) unused_allow_log_sync)); ASSERT_EQ(OB_SUCCESS, ls->create_ls_inner_tablet(arg.get_compat_mode(), arg.get_create_scn())); - ASSERT_EQ(OB_SUCCESS, ls_svr->write_commit_create_ls_slog_(ls->get_ls_id(), create_type)); + ASSERT_EQ(OB_SUCCESS, ls_svr->write_commit_create_ls_slog_(ls->get_ls_id())); ASSERT_EQ(OB_SUCCESS, ls->finish_create_ls()); ASSERT_EQ(OB_SUCCESS, ls_svr->post_create_ls_(create_type, ls)); @@ -462,7 +461,7 @@ TEST_F(ObLSBeforeRestartTest, create_rebuild_ls) unused_allow_log_sync)); ASSERT_EQ(OB_SUCCESS, ls->create_ls_inner_tablet(arg.get_compat_mode(), arg.get_create_scn())); - ASSERT_EQ(OB_SUCCESS, ls_svr->write_commit_create_ls_slog_(ls->get_ls_id(), create_type)); + ASSERT_EQ(OB_SUCCESS, ls_svr->write_commit_create_ls_slog_(ls->get_ls_id())); ASSERT_EQ(OB_SUCCESS, ls->finish_create_ls()); ASSERT_EQ(OB_SUCCESS, ls_svr->post_create_ls_(create_type, ls)); diff --git a/src/storage/slog/ob_storage_log.cpp b/src/storage/slog/ob_storage_log.cpp index 8ebcff8888..c4ce7bdb49 100644 --- a/src/storage/slog/ob_storage_log.cpp +++ b/src/storage/slog/ob_storage_log.cpp @@ -149,30 +149,6 @@ DEF_TO_STRING(ObLSIDLog) OB_SERIALIZE_MEMBER(ObLSIDLog, ls_id_); -ObCreateLSCommitSLog::ObCreateLSCommitSLog(ObLSID &ls_id, - const int64_t create_type) - : ObLSIDLog(ls_id), - create_type_(create_type) -{ -} - -bool ObCreateLSCommitSLog::is_valid() const -{ - return ObLSIDLog::is_valid(); -} - -DEF_TO_STRING(ObCreateLSCommitSLog) -{ - int64_t pos = 0; - J_OBJ_START(); - J_KV(K_(ls_id)); - J_KV(K_(create_type)); - J_OBJ_END(); - return pos; -} - -OB_SERIALIZE_MEMBER_INHERIT(ObCreateLSCommitSLog, ObLSIDLog, create_type_); - ObCreateTabletLog::ObCreateTabletLog(ObTablet *tablet) : tablet_(tablet) { diff --git a/src/storage/slog/ob_storage_log.h b/src/storage/slog/ob_storage_log.h index aab626d89c..f93057adcd 100644 --- a/src/storage/slog/ob_storage_log.h +++ b/src/storage/slog/ob_storage_log.h @@ -179,21 +179,9 @@ protected: using ObCreateLSPrepareSlog = ObLSMetaLog; using ObCreateLSAbortSLog = ObLSIDLog; +using ObCreateLSCommitSLog = ObLSIDLog; using ObDeleteLSLog = ObLSIDLog; -struct ObCreateLSCommitSLog: public ObLSIDLog -{ - OB_UNIS_VERSION(1); -public: - ObCreateLSCommitSLog(share::ObLSID &ls_id, const int64_t create_type); - virtual ~ObCreateLSCommitSLog() {} - virtual bool is_valid() const override; - int64_t get_create_type() const { return create_type_; } - DECLARE_TO_STRING; -private: - int64_t create_type_; -}; - struct ObCreateTabletLog : public ObIBaseStorageLogEntry { public: diff --git a/src/storage/slog_ckpt/ob_tenant_checkpoint_slog_handler.cpp b/src/storage/slog_ckpt/ob_tenant_checkpoint_slog_handler.cpp index a1ba7efca9..91d36d9e07 100644 --- a/src/storage/slog_ckpt/ob_tenant_checkpoint_slog_handler.cpp +++ b/src/storage/slog_ckpt/ob_tenant_checkpoint_slog_handler.cpp @@ -1215,13 +1215,12 @@ int ObTenantCheckpointSlogHandler::inner_replay_create_ls_commit_slog( int ret = OB_SUCCESS; ObLSID ls_id; - int64_t create_type = ObLSCreateType::NORMAL; - ObCreateLSCommitSLog slog_entry(ls_id, create_type); + ObCreateLSCommitSLog slog_entry(ls_id); int64_t pos = 0; const bool is_replay = true; if (OB_FAIL(slog_entry.deserialize(param.buf_, param.disk_addr_.size(), pos))) { LOG_WARN("fail to deserialize slog", K(ret), K(param), K(pos)); - } else if (OB_FAIL(MTL(ObLSService *)->replay_create_ls_commit(ls_id, slog_entry.get_create_type()))) { + } else if (OB_FAIL(MTL(ObLSService *)->replay_create_ls_commit(ls_id))) { LOG_WARN("fail to replay create ls commit slog", K(ret), K(param), K(pos)); } else { LOG_INFO("successfully replay create ls commit slog"); diff --git a/src/storage/tx_storage/ob_ls_service.cpp b/src/storage/tx_storage/ob_ls_service.cpp index 748eafab82..edaddac56b 100644 --- a/src/storage/tx_storage/ob_ls_service.cpp +++ b/src/storage/tx_storage/ob_ls_service.cpp @@ -349,12 +349,11 @@ int ObLSService::write_prepare_create_ls_slog_(const ObLSMeta &ls_meta) const return ret; } -int ObLSService::write_commit_create_ls_slog_(const share::ObLSID &ls_id, - const int64_t create_type) const +int ObLSService::write_commit_create_ls_slog_(const share::ObLSID &ls_id) const { int ret = OB_SUCCESS; share::ObLSID tmp_ls_id = ls_id; - ObCreateLSCommitSLog slog_entry(tmp_ls_id, create_type); + ObCreateLSCommitSLog slog_entry(tmp_ls_id); ObStorageLogParam log_param; ObStorageLogger *slogger = MTL(ObStorageLogger*); log_param.data_ = &slog_entry; @@ -587,13 +586,13 @@ int ObLSService::replay_remove_ls(const share::ObLSID &ls_id) return ret; } -int ObLSService::replay_create_ls_commit(const share::ObLSID &ls_id, - const int64_t create_type) +int ObLSService::replay_create_ls_commit(const share::ObLSID &ls_id) { int ret = OB_SUCCESS; int tmp_ret = OB_SUCCESS; ObLS *ls = nullptr; ObLSHandle ls_handle; + int64_t create_type; if (IS_NOT_INIT) { ret = OB_NOT_INIT; LOG_WARN("the ls service has not been inited", K(ret)); @@ -607,37 +606,41 @@ int ObLSService::replay_create_ls_commit(const share::ObLSID &ls_id, LOG_WARN("ls is null", K(ls_id)); } else { ObLSLockGuard lock_ls(ls); - switch(create_type) { - case ObLSCreateType::NORMAL: { - if (OB_FAIL(ls->set_start_work_state())) { - LOG_ERROR("ls set start work state failed", KR(ret), K(ls_id)); + if (OB_FAIL(ls->get_create_type(create_type))) { + LOG_WARN("get ls create type failed", K(ret)); + } else { + switch(create_type) { + case ObLSCreateType::NORMAL: { + if (OB_FAIL(ls->set_start_work_state())) { + LOG_ERROR("ls set start work state failed", KR(ret), K(ls_id)); + } + break; } - break; + case ObLSCreateType::RESTORE: { + if (OB_FAIL(ls->set_start_ha_state())) { + LOG_ERROR("ls set start ha state failed", KR(ret), K(ls_id)); + } + break; + } + case ObLSCreateType::MIGRATE: { + if (OB_FAIL(ls->set_start_ha_state())) { + LOG_ERROR("ls set start ha state failed", KR(ret), K(ls_id)); + } + break; + } + case ObLSCreateType::CLONE: { + if (OB_FAIL(ls->set_start_ha_state())) { + LOG_ERROR("ls set start ha state failed", KR(ret), K(ls_id)); + } + break; + } + default: { + if (OB_FAIL(ls->set_start_work_state())) { + LOG_ERROR("ls set start work state failed", KR(ret), K(ls_id)); + } + } // default + } // switch } - case ObLSCreateType::RESTORE: { - if (OB_FAIL(ls->set_start_ha_state())) { - LOG_ERROR("ls set start ha state failed", KR(ret), K(ls_id)); - } - break; - } - case ObLSCreateType::MIGRATE: { - if (OB_FAIL(ls->set_start_ha_state())) { - LOG_ERROR("ls set start ha state failed", KR(ret), K(ls_id)); - } - break; - } - case ObLSCreateType::CLONE: { - if (OB_FAIL(ls->set_start_ha_state())) { - LOG_ERROR("ls set start ha state failed", KR(ret), K(ls_id)); - } - break; - } - default: { - if (OB_FAIL(ls->set_start_work_state())) { - LOG_ERROR("ls set start work state failed", KR(ret), K(ls_id)); - } - } // default - } // switch FLOG_INFO("replay create ls", KR(ret), K(ls_id)); } return ret; @@ -1077,8 +1080,7 @@ int ObLSService::create_ls_(const ObCreateLSCommonArg &arg, arg.create_scn_))) { LOG_WARN("create ls inner tablet failed", K(ret), K(ls_meta)); } else if (FALSE_IT(state = ObLSCreateState::CREATE_STATE_INNER_TABLET_CREATED)) { - } else if (OB_BREAK_FAIL(write_commit_create_ls_slog_(ls->get_ls_id(), - arg.create_type_))) { + } else if (OB_BREAK_FAIL(write_commit_create_ls_slog_(ls->get_ls_id()))) { LOG_WARN("fail to write create log stream commit slog", K(ret), K(ls_meta)); } else if (OB_BREAK_FAIL(ls->finish_create_ls())) { LOG_WARN("finish create ls failed", KR(ret)); diff --git a/src/storage/tx_storage/ob_ls_service.h b/src/storage/tx_storage/ob_ls_service.h index 5be1ccf815..0efacdbccf 100644 --- a/src/storage/tx_storage/ob_ls_service.h +++ b/src/storage/tx_storage/ob_ls_service.h @@ -83,8 +83,7 @@ public: int replay_create_ls(const ObLSMeta &ls_meta); // replay create ls commit slog. // @param [in] ls_id, the create process of which is committed. - // @param [in] create_type, the create type, it is maybe a normal ls/migrate ls/restore ls - int replay_create_ls_commit(const share::ObLSID &ls_id, const int64_t create_type); + int replay_create_ls_commit(const share::ObLSID &ls_id); // create a LS for replay or update LS's meta // @param [in] ls_meta, all the parameters that is needed to create a LS for replay int replay_update_ls(const ObLSMeta &ls_meta); @@ -187,8 +186,7 @@ private: int inner_del_ls_(ObLS *&ls); int add_ls_to_map_(ObLS *ls); int write_prepare_create_ls_slog_(const ObLSMeta &ls_meta) const; - int write_commit_create_ls_slog_(const share::ObLSID &ls_id, - const int64_t create_type) const; + int write_commit_create_ls_slog_(const share::ObLSID &ls_id) const; int write_abort_create_ls_slog_(const share::ObLSID &ls_id) const; int write_remove_ls_slog_(const share::ObLSID &ls_id) const; int remove_ls_from_map_(const share::ObLSID &ls_id);