[CP] Make ObTabletTableIterator and ObTableStoreIterator deep copy safe

This commit is contained in:
JiahuaChen
2023-11-17 14:44:52 +00:00
committed by ob-robot
parent d4657d7e08
commit 7f360fc2f5
8 changed files with 76 additions and 34 deletions

View File

@ -208,10 +208,10 @@ int ObComplementDataParam::split_task_ranges(
total_size,
expected_task_count))) {
LOG_WARN("compute total task count failed", K(ret));
} else if (OB_FAIL(tablet_service->split_multi_ranges(tablet_id,
ranges,
} else if (OB_FAIL(tablet_service->split_multi_ranges(tablet_id,
ranges,
min(min(max(expected_task_count, 1), hint_parallelism), ObMacroDataSeq::MAX_PARALLEL_IDX + 1),
allocator_,
allocator_,
multi_range_split_array))) {
LOG_WARN("split multi ranges failed", K(ret));
if (OB_REPLICA_NOT_READABLE == ret) {
@ -1773,9 +1773,10 @@ int ObLocalScan::construct_multiple_scan_merge(
{
int ret = OB_SUCCESS;
void *buf = nullptr;
get_table_param_.tablet_iter_ = table_iter;
LOG_INFO("start to do output_store.scan");
if (OB_ISNULL(buf = allocator_.alloc(sizeof(ObMultipleScanMerge)))) {
if (OB_FAIL(get_table_param_.tablet_iter_.assign(table_iter))) {
LOG_WARN("fail to assign tablet iterator", K(ret));
} else if (OB_ISNULL(buf = allocator_.alloc(sizeof(ObMultipleScanMerge)))) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("fail to alloc memory for ObMultipleScanMerge", K(ret));
} else if (FALSE_IT(scan_merge_ = new(buf)ObMultipleScanMerge())) {