diff --git a/deps/oblib/src/lib/utility/ob_tracepoint_def.h b/deps/oblib/src/lib/utility/ob_tracepoint_def.h index 6d22c0161..d927afcc5 100644 --- a/deps/oblib/src/lib/utility/ob_tracepoint_def.h +++ b/deps/oblib/src/lib/utility/ob_tracepoint_def.h @@ -466,6 +466,7 @@ GLOBAL_ERRSIM_POINT_DEF(761, EN_FAST_RECLAIM_THREAD, "used to speed up reclaimin GLOBAL_ERRSIM_POINT_DEF(800, EN_END_PARTICIPANT, ""); // compaction 801 - 899 +GLOBAL_ERRSIM_POINT_DEF(801, EN_FORCE_PARALLEL_MINI_MERGE, "used to force set parallel degree for mini merge"); // compaction 801 - 899 //LS Migration Related 900 - 1000 diff --git a/src/objit/src/ob_llvm_di_helper.cpp b/src/objit/src/ob_llvm_di_helper.cpp index bc14135f4..167e5589b 100644 --- a/src/objit/src/ob_llvm_di_helper.cpp +++ b/src/objit/src/ob_llvm_di_helper.cpp @@ -431,9 +431,9 @@ ObLLVMDIHelper::ObDIBasicTypeAttr ObLLVMDIHelper::basic_type_[common::ObMaxType] {"tinyint unsigned", 8, 8, llvm::dwarf::DW_ATE_unsigned}, {"smallint unsigned", 16, 16, llvm::dwarf::DW_ATE_unsigned}, {"mediumint unsigned", 32, 32, llvm::dwarf::DW_ATE_unsigned}, - {"int unsigned", 32, 32, llvm::dwarf::DW_ATE_unsigned}, - {"bigint unsigned", 64, 64, llvm::dwarf::DW_ATE_unsigned}, - {"float", 32, 32, llvm::dwarf::DW_ATE_float}, + {"int unsigned", 32, 32, llvm::dwarf::DW_ATE_unsigned}, + {"bigint unsigned", 64, 64, llvm::dwarf::DW_ATE_unsigned}, + {"float", 32, 32, llvm::dwarf::DW_ATE_float}, {"double", 64, 64, llvm::dwarf::DW_ATE_float}, {"float unsigned", 32, 32, llvm::dwarf::DW_ATE_float}, {"double unsigned", 64, 64, llvm::dwarf::DW_ATE_float}, diff --git a/src/storage/compaction/ob_partition_parallel_merge_ctx.cpp b/src/storage/compaction/ob_partition_parallel_merge_ctx.cpp index 281219463..ad57cb689 100644 --- a/src/storage/compaction/ob_partition_parallel_merge_ctx.cpp +++ b/src/storage/compaction/ob_partition_parallel_merge_ctx.cpp @@ -260,6 +260,22 @@ int ObParallelMergeCtx::init_parallel_major_merge(compaction::ObBasicTabletMerge return ret; } +#ifdef ERRSIM +void errsim_set_prallel_cnt(const int64_t parallel_merge_cnt, int64_t &concurrent_cnt) +{ + /* alter system set_tp tp_no = 801, error_code = 3, frequency = 1; + * error_code = 3, then the parallel degree of mini merge will be 3 + */ + int ret = OB_SUCCESS; + ret = OB_E(EventTable::EN_FORCE_PARALLEL_MINI_MERGE) ret; + if (OB_FAIL(ret)) { + concurrent_cnt = MIN(-ret, parallel_merge_cnt); + ret = OB_SUCCESS; + STORAGE_LOG(INFO, "ERRSIM EN_FORCE_PARALLEL_MINI_MERGE, force set parallel degree for mini merge", K(concurrent_cnt)); + } +} +#endif + int ObParallelMergeCtx::init_parallel_mini_merge(compaction::ObBasicTabletMergeCtx &merge_ctx) { int ret = OB_SUCCESS; @@ -284,6 +300,13 @@ int ObParallelMergeCtx::init_parallel_mini_merge(compaction::ObBasicTabletMergeC (total_bytes + ObCompactionEstimator::MINI_PARALLEL_BASE_MEM - 1) / ObCompactionEstimator::MINI_PARALLEL_BASE_MEM, concurrent_cnt_); +#ifdef ERRSIM + if (concurrent_cnt_ <= 1) { + (void )errsim_set_prallel_cnt(PARALLEL_MERGE_TARGET_TASK_CNT, concurrent_cnt_); + } +#endif + + ObArray store_ranges; store_ranges.set_attr(lib::ObMemAttr(MTL_ID(), "TmpMiniRanges", ObCtxIds::MERGE_NORMAL_CTX_ID));