add config _enable_choose_migration_source_policy and choose_migration_source_policy in master code

This commit is contained in:
obdev
2024-02-29 07:50:53 +00:00
committed by ob-robot
parent aaf06286e6
commit f80b43e4c2
4 changed files with 29 additions and 0 deletions

View File

@ -1149,5 +1149,12 @@ bool ObConfigTableStoreFormatChecker::check(const ObConfigItem &t) const {
0 == tmp_str.case_compare("COMPOUND");
}
bool ObConfigMigrationChooseSourceChecker::check(const ObConfigItem &t) const
{
ObString v_str(t.str());
return 0 == v_str.case_compare("idc")
|| 0 == v_str.case_compare("region");
}
} // end of namepace common
} // end of namespace oceanbase

View File

@ -731,6 +731,17 @@ private:
DISALLOW_COPY_AND_ASSIGN(ObConfigTableStoreFormatChecker);
};
class ObConfigMigrationChooseSourceChecker
: public ObConfigChecker
{
public:
ObConfigMigrationChooseSourceChecker() {}
virtual ~ObConfigMigrationChooseSourceChecker() {}
bool check(const ObConfigItem &t) const;
private:
DISALLOW_COPY_AND_ASSIGN(ObConfigMigrationChooseSourceChecker);
};
typedef __ObConfigContainer<ObConfigStringKey,
ObConfigItem, OB_MAX_CONFIG_NUMBER> ObConfigContainer;
} // namespace common

View File

@ -1871,3 +1871,12 @@ DEF_TIME(_faststack_min_interval, OB_CLUSTER_PARAMETER, "30m", "[1s,)",
"Minimum interval for OBServer to automatically collect the obstack. "
"Default: 30min. Range: [1s,+∞)",
ObParameterAttr(Section::OBSERVER, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
DEF_STR_WITH_CHECKER(choose_migration_source_policy, OB_TENANT_PARAMETER, "idc",
common::ObConfigMigrationChooseSourceChecker,
"the policy of choose source in migration and add replica. 'idc' means firstly choose follower replica of the same idc as source, "
"'region' means firstly choose follower replica of the same region as source",
ObParameterAttr(Section::TENANT, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));
DEF_BOOL(_enable_choose_migration_source_policy, OB_TENANT_PARAMETER, "True",
"Control whether to use chose_migration_source_policy. "
"If the value of configure is false, it will not use chose_migration_source_policy and choose replica with the largest checkpoint scn as the source.",
ObParameterAttr(Section::TENANT, Source::DEFAULT, EditLevel::DYNAMIC_EFFECTIVE));