diff --git a/src/storage/high_availability/ob_ls_transfer_info.cpp b/src/storage/high_availability/ob_ls_transfer_info.cpp index 3316605f9..ab5fb047e 100644 --- a/src/storage/high_availability/ob_ls_transfer_info.cpp +++ b/src/storage/high_availability/ob_ls_transfer_info.cpp @@ -14,6 +14,7 @@ #include "ob_ls_transfer_info.h" #include "common/ob_version_def.h" #include "share/ob_cluster_version.h" +#include "storage/high_availability/ob_storage_ha_utils.h" using namespace oceanbase; using namespace share; @@ -407,9 +408,7 @@ int ObLSTransferMetaInfo::get_tablet_id_array( bool ObLSTransferMetaInfo::is_in_compatible_status() { - // TODO(@muwei.ym): validate version here - return (data_version_ < MOCK_CLUSTER_VERSION_4_2_3_0 - || data_version_ < CLUSTER_VERSION_4_3_2_0); + return !ObTransferUtils::enable_transfer_dml_ctrl(data_version_); } int ObLSTransferMetaInfo::check_transfer_tablet_is_same( diff --git a/src/storage/high_availability/ob_storage_ha_struct.cpp b/src/storage/high_availability/ob_storage_ha_struct.cpp index 95e06ff1e..5891e040b 100644 --- a/src/storage/high_availability/ob_storage_ha_struct.cpp +++ b/src/storage/high_availability/ob_storage_ha_struct.cpp @@ -467,7 +467,8 @@ int ObMigrationStatusHelper::allow_transfer_src_ls_gc_( } else if (ObMigrationStatus::OB_MIGRATION_STATUS_NONE != status && ObMigrationStatus::OB_MIGRATION_STATUS_MIGRATE_WAIT != status && ObMigrationStatus::OB_MIGRATION_STATUS_ADD_WAIT != status - && ObMigrationStatus::OB_MIGRATION_STATUS_REBUILD_WAIT != status) { + && ObMigrationStatus::OB_MIGRATION_STATUS_REBUILD_WAIT != status + && ObMigrationStatus::OB_MIGRATION_STATUS_HOLD != status) { allow_gc = true; } return ret; @@ -1018,7 +1019,8 @@ int ObMigrationStatusHelper::check_transfer_dest_ls_status_for_ls_gc_v1_( } else if (ObMigrationStatus::OB_MIGRATION_STATUS_NONE != dest_ls_status && ObMigrationStatus::OB_MIGRATION_STATUS_MIGRATE_WAIT != dest_ls_status && ObMigrationStatus::OB_MIGRATION_STATUS_ADD_WAIT != dest_ls_status - && ObMigrationStatus::OB_MIGRATION_STATUS_REBUILD_WAIT != dest_ls_status) { + && ObMigrationStatus::OB_MIGRATION_STATUS_REBUILD_WAIT != dest_ls_status + && ObMigrationStatus::OB_MIGRATION_STATUS_HOLD != dest_ls_status) { allow_gc = true; LOG_INFO("transfer dest ls check transfer status passed", K(ret), K(transfer_ls_id), K(dest_ls_status)); } else if (OB_FAIL(check_transfer_dest_tablet_for_ls_gc_v1_(dest_ls, tablet_id, transfer_scn, need_wait_dest_ls_replay, allow_gc))) {