From 89be1d878e9f939d8099ec5ee6d5f628bf571ed7 Mon Sep 17 00:00:00 2001 From: obdev Date: Thu, 13 Apr 2023 08:58:20 +0000 Subject: [PATCH] fix generating same macro data seq in differnt macro block when drop column in parallel. --- src/share/ob_ddl_common.cpp | 2 +- src/storage/ddl/ob_complement_data_task.cpp | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/share/ob_ddl_common.cpp b/src/share/ob_ddl_common.cpp index 4852b0d57c..81f8028609 100644 --- a/src/share/ob_ddl_common.cpp +++ b/src/share/ob_ddl_common.cpp @@ -548,7 +548,7 @@ int ObDDLUtil::generate_build_replica_sql( ObArray order_column_ids; bool is_shadow_column = false; int64_t real_parallelism = std::max(1L, parallelism); - real_parallelism = std::min(64L, real_parallelism); + real_parallelism = std::min(ObMacroDataSeq::MAX_PARALLEL_IDX + 1, real_parallelism); // get dest table column names if (dest_table_schema->is_spatial_index()) { if (OB_FAIL(ObDDLUtil::generate_spatial_index_column_names(*dest_table_schema, *source_table_schema, insert_column_names, diff --git a/src/storage/ddl/ob_complement_data_task.cpp b/src/storage/ddl/ob_complement_data_task.cpp index 4f700ff8f4..8c2b584f4e 100644 --- a/src/storage/ddl/ob_complement_data_task.cpp +++ b/src/storage/ddl/ob_complement_data_task.cpp @@ -175,7 +175,7 @@ int ObComplementDataParam::split_task_ranges( LOG_WARN("compute total task count failed", K(ret)); } else if (OB_FAIL(tablet_service->split_multi_ranges(tablet_id, ranges, - min(max(expected_task_count, 1), hint_parallelism), + min(min(max(expected_task_count, 1), hint_parallelism), ObMacroDataSeq::MAX_PARALLEL_IDX + 1), allocator_, multi_range_split_array))) { LOG_WARN("split multi ranges failed", K(ret)); @@ -998,6 +998,8 @@ int ObComplementWriteTask::append_row(ObLocalScan &local_scan) } else if (OB_ISNULL(param_) || OB_UNLIKELY(!param_->is_valid()) || OB_ISNULL(context_)) { ret = OB_INVALID_ARGUMENT; LOG_WARN("invalid arguments", K(param_), KP(context_), K(ret)); + } else if (OB_FAIL(macro_start_seq.set_parallel_degree(task_id_))) { + LOG_WARN("set parallel degree failed", K(ret), K(task_id_)); } else { ObSchemaGetterGuard schema_guard; const ObTableSchema *hidden_table_schema = nullptr;