@@ -55,6 +55,76 @@ int64_t ConfigHelper::GetSplitCheckApproximateSize() {
5555 return static_cast <int64_t >(static_cast <double >(Constant::kDefaultSplitCheckApproximateSizeRatio ) * region_max_size);
5656}
5757
58+ int64_t ConfigHelper::GetMergeCheckSize () {
59+ auto config = ConfigManager::GetInstance ().GetRoleConfig ();
60+ if (config == nullptr ) {
61+ return Constant::kAutoMergeRegionMaxSizeDefaultValue ;
62+ }
63+ int64_t region_max_size = config->GetInt64 (" region.max_merge_region_size" );
64+ if (region_max_size < Constant::kAutoMergeRegionMaxSizeDefaultValue ) {
65+ region_max_size = Constant::kAutoMergeRegionMaxSizeDefaultValue ;
66+ DINGO_LOG (WARNING) << fmt::format (" [config] max_merge_region_size is too small, set default value({})" ,
67+ Constant::kAutoMergeRegionMaxSizeDefaultValue );
68+ }
69+ return region_max_size;
70+ }
71+
72+ int64_t ConfigHelper::GetSplitMergeInterval () {
73+ auto config = ConfigManager::GetInstance ().GetRoleConfig ();
74+ if (config == nullptr ) {
75+ return Constant::kSplitMergeIntervalDefaultValue ;
76+ }
77+ int64_t split_merge_interval = config->GetInt64 (" region.split_merge_interval" );
78+ if (split_merge_interval < Constant::kSplitMergeIntervalDefaultValue ) {
79+ split_merge_interval = Constant::kSplitMergeIntervalDefaultValue ;
80+ DINGO_LOG (WARNING) << fmt::format (" [config] split_merge_interval is too small, set default value({})" ,
81+ Constant::kSplitMergeIntervalDefaultValue );
82+ }
83+ return split_merge_interval;
84+ }
85+
86+ int64_t ConfigHelper::GetMergeCheckKeysCount () {
87+ auto config = ConfigManager::GetInstance ().GetRoleConfig ();
88+ if (config == nullptr ) {
89+ return Constant::kAutoMergeRegionMaxKeysCountDefaultValue ;
90+ }
91+ int64_t region_max_keys_count = config->GetInt64 (" region.max_merge_region_keys" );
92+ if (region_max_keys_count < Constant::kAutoMergeRegionMaxKeysCountDefaultValue ) {
93+ region_max_keys_count = Constant::kAutoMergeRegionMaxKeysCountDefaultValue ;
94+ DINGO_LOG (WARNING) << fmt::format (" [config] max_merge_region_keys is too small, set default value({})" ,
95+ Constant::kAutoMergeRegionMaxKeysCountDefaultValue );
96+ }
97+ return region_max_keys_count;
98+ }
99+
100+ float ConfigHelper::GetMergeSizeRatio () {
101+ auto config = ConfigManager::GetInstance ().GetRoleConfig ();
102+ if (config == nullptr ) {
103+ return Constant::kMergeRatioDefaultValue ;
104+ }
105+ float merge_ratio = static_cast <float >(config->GetDouble (" region.merge_size_ratio" ));
106+ if (merge_ratio < 0.1 || merge_ratio > 0.9 ) {
107+ merge_ratio = Constant::kMergeRatioDefaultValue ;
108+ DINGO_LOG (WARNING) << fmt::format (" [config] merge_size_ratio out of range, set default value({})" ,
109+ Constant::kMergeRatioDefaultValue );
110+ }
111+ return merge_ratio;
112+ }
113+
114+ float ConfigHelper::GetMergeKeysRatio () {
115+ auto config = ConfigManager::GetInstance ().GetRoleConfig ();
116+ if (config == nullptr ) {
117+ return Constant::kMergeKeysRatioDefaultValue ;
118+ }
119+ float merge_ratio = static_cast <float >(config->GetDouble (" region.merge_keys_ratio" ));
120+ if (merge_ratio < 0.1 || merge_ratio > 0.9 ) {
121+ merge_ratio = Constant::kMergeKeysRatioDefaultValue ;
122+ DINGO_LOG (WARNING) << fmt::format (" [config] split_size_ratio out of range, set default value({})" ,
123+ Constant::kMergeKeysRatioDefaultValue );
124+ }
125+ return merge_ratio;
126+ }
127+
58128std::string ConfigHelper::GetSplitPolicy () {
59129 auto config = ConfigManager::GetInstance ().GetRoleConfig ();
60130 if (config == nullptr ) {
0 commit comments