add errsim to schedule parallel dump minor sstable, add obtest for bug, dump sstable failed when modify type

This commit is contained in:
AnimationFan 2024-12-09 09:48:48 +00:00 committed by ob-robot
parent 5a35ec6391
commit 43280b8d81
3 changed files with 27 additions and 3 deletions

View File

@ -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

View File

@ -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},

View File

@ -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<ObStoreRange> store_ranges;
store_ranges.set_attr(lib::ObMemAttr(MTL_ID(), "TmpMiniRanges", ObCtxIds::MERGE_NORMAL_CTX_ID));