Skip to content

Commit 798deef

Browse files
committed
[fix][coordinator] Expand job map initial bucket size.
If the initial bucket size is too small, there will be a performance issue when many jobs generated in seconds. Signed-off-by: Ketor <d.ketor@gmail.com>
1 parent d6a9d25 commit 798deef

File tree

2 files changed

+26
-23
lines changed

2 files changed

+26
-23
lines changed

src/coordinator/coordinator_control.cc

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,26 +92,26 @@ CoordinatorControl::CoordinatorControl(std::shared_ptr<MetaReader> meta_reader,
9292
&table_index_map_, kPrefixTableIndex, raw_engine_of_meta);
9393

9494
// init SafeMap
95-
id_epoch_map_.Init(100); // id_epoch_map_ is a small map
96-
id_epoch_map_safe_temp_.Init(100); // id_epoch_map_temp_ is a small map
97-
schema_name_map_safe_temp_.Init(1000); // schema_map_ is a big map
98-
table_name_map_safe_temp_.Init(10000); // table_map_ is a big map
99-
store_operation_map_.Init(100); // store_operation_map_ is a small map
100-
region_cmd_map_.Init(2000); // region_cmd_map_ is a big map
101-
schema_map_.Init(10000); // schema_map_ is a big map
102-
table_map_.Init(10000); // table_map_ is a big map
103-
region_map_.Init(30000); // region_map_ is a big map
104-
region_metrics_map_.Init(30000); // region_metrics_map_ is a big map
105-
coordinator_map_.Init(10); // coordinator_map_ is a small map
106-
store_map_.Init(100); // store_map_ is a small map
107-
table_metrics_map_.Init(10000); // table_metrics_map_ is a big map
108-
job_map_.Init(100); // job_map_ is a small map
109-
index_name_map_safe_temp_.Init(10000); // index_map_ is a big map
110-
index_map_.Init(10000); // index_map_ is a big map
111-
index_metrics_map_.Init(10000); // index_metrics_map_ is a big map
95+
id_epoch_map_.Init(100); // id_epoch_map_ is a small map
96+
id_epoch_map_safe_temp_.Init(100); // id_epoch_map_temp_ is a small map
97+
schema_name_map_safe_temp_.Init(10000); // schema_map_ is a big map
98+
table_name_map_safe_temp_.Init(100000); // table_map_ is a big map
99+
store_operation_map_.Init(10000); // store_operation_map_ is a big map
100+
region_cmd_map_.Init(100000); // region_cmd_map_ is a big map
101+
schema_map_.Init(10000); // schema_map_ is a big map
102+
table_map_.Init(100000); // table_map_ is a big map
103+
region_map_.Init(500000); // region_map_ is a big map
104+
region_metrics_map_.Init(500000); // region_metrics_map_ is a big map
105+
coordinator_map_.Init(100); // coordinator_map_ is a small map
106+
store_map_.Init(200); // store_map_ is a small map
107+
table_metrics_map_.Init(100000); // table_metrics_map_ is a big map
108+
job_map_.Init(100000); // job_map_ is a big map
109+
index_name_map_safe_temp_.Init(100000); // index_map_ is a big map
110+
index_map_.Init(100000); // index_map_ is a big map
111+
index_metrics_map_.Init(100000); // index_metrics_map_ is a big map
112112

113113
// table index
114-
table_index_map_.Init(10000);
114+
table_index_map_.Init(100000);
115115

116116
// tenant
117117
tenant_map_.Init(1000); // tenant_map_ is a small map

src/coordinator/coordinator_control_coor.cc

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3637,7 +3637,7 @@ butil::Status CoordinatorControl::CreateRegionWithJob(std::vector<pb::coordinato
36373637
butil::Status CoordinatorControl::ValidateJobConflict(int64_t region_id, int64_t second_region_id) {
36383638
// check job conflict
36393639
butil::FlatMap<int64_t, pb::coordinator::Job> temp_job_map;
3640-
temp_job_map.init(1000);
3640+
temp_job_map.init(10000);
36413641
int ret = job_map_.GetRawMapCopy(temp_job_map);
36423642
if (ret < 0) {
36433643
DINGO_LOG(ERROR) << "ValidateJobConflict job_map_.GetRawMapCopy "
@@ -3681,7 +3681,7 @@ butil::Status CoordinatorControl::ValidateJobConflict(int64_t region_id, int64_t
36813681

36823682
// check store operation conflict
36833683
butil::FlatMap<int64_t, pb::coordinator_internal::StoreOperationInternal> store_operation_map_temp;
3684-
store_operation_map_temp.init(1000);
3684+
store_operation_map_temp.init(10000);
36853685
ret = store_operation_map_.GetRawMapCopy(store_operation_map_temp);
36863686
if (ret < 0) {
36873687
DINGO_LOG(ERROR) << "ValidateJobConflict store_operation_map_.GetRawMapCopy "
@@ -4622,9 +4622,9 @@ void CoordinatorControl::UpdateRegionMapAndStoreOperation(const pb::common::Stor
46224622
region_to_update.definition().range().end_key() != region_metrics.region_definition().range().end_key()) {
46234623
DINGO_LOG(INFO) << "region range change region_id = " << region_metrics.id() << " old range = ["
46244624
<< Helper::StringToHex(region_to_update.definition().range().start_key()) << ", "
4625-
<< Helper::StringToHex(region_to_update.definition().range().end_key()) << ")"
4626-
<< " new range = [" << Helper::StringToHex(region_metrics.region_definition().range().start_key())
4627-
<< ", " << Helper::StringToHex(region_metrics.region_definition().range().end_key()) << ")";
4625+
<< Helper::StringToHex(region_to_update.definition().range().end_key()) << ")" << " new range = ["
4626+
<< Helper::StringToHex(region_metrics.region_definition().range().start_key()) << ", "
4627+
<< Helper::StringToHex(region_metrics.region_definition().range().end_key()) << ")";
46284628
if (!leader_has_old_epoch) {
46294629
need_update_region_metrics = true;
46304630
}
@@ -6627,6 +6627,9 @@ butil::Status CoordinatorControl::RpcSendPushStoreOperation(const pb::common::Lo
66276627

66286628
pb::push::PushService_Stub(&channel).PushStoreOperation(&cntl, &request, &response, nullptr);
66296629

6630+
DINGO_LOG(INFO) << fmt::format("[joblist] send store_operation to store:{}, request:{}",
6631+
location.ShortDebugString(), request.ShortDebugString());
6632+
66306633
if (cntl.Failed()) {
66316634
DINGO_LOG(ERROR) << fmt::format("[joblist] rpc failed, will retry, error code:{}, error message:{}",
66326635
cntl.ErrorCode(), cntl.ErrorText());

0 commit comments

Comments
 (0)