diff --git a/src/logservice/libobcdc/src/ob_log_part_trans_task.cpp b/src/logservice/libobcdc/src/ob_log_part_trans_task.cpp index 6fe7125a5..436075afa 100644 --- a/src/logservice/libobcdc/src/ob_log_part_trans_task.cpp +++ b/src/logservice/libobcdc/src/ob_log_part_trans_task.cpp @@ -343,7 +343,7 @@ int MutatorRow::parse_columns_( { int ret = OB_SUCCESS; blocksstable::ObRowReader row_reader; - blocksstable::ObDatumRow datum_row; + blocksstable::ObDatumRow datum_row(tenant_id); // warpper cols for udt column values ObCDCUdtValueMap udt_value_map(allocator_, tb_schema_info, cols); @@ -752,7 +752,7 @@ int MutatorRow::parse_columns_( { int ret = OB_SUCCESS; blocksstable::ObRowReader row_reader; - blocksstable::ObDatumRow datum_row; + blocksstable::ObDatumRow datum_row(OB_SERVER_TENANT_ID); const ObArray &col_des_array = inner_table_schema.get_cols_des_array(); const share::schema::ObTableSchema &table_schema = inner_table_schema.get_table_schema(); diff --git a/src/storage/blocksstable/ob_datum_row.cpp b/src/storage/blocksstable/ob_datum_row.cpp index 8fa6981fd..279c80e35 100644 --- a/src/storage/blocksstable/ob_datum_row.cpp +++ b/src/storage/blocksstable/ob_datum_row.cpp @@ -211,8 +211,8 @@ int ObConstDatumRow::set_datums_ptr(char *datums_ptr) *ObDatumRow */ -ObDatumRow::ObDatumRow() - : local_allocator_("ObDatumRow", OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID(), ObCtxIds::DEFAULT_CTX_ID), +ObDatumRow::ObDatumRow(const uint64_t tenant_id) + : local_allocator_("ObDatumRow", OB_MALLOC_NORMAL_BLOCK_SIZE, tenant_id, ObCtxIds::DEFAULT_CTX_ID), count_(0), fast_filter_skipped_(false), have_uncommited_row_(false), diff --git a/src/storage/blocksstable/ob_datum_row.h b/src/storage/blocksstable/ob_datum_row.h index 224abc4a9..24cbb9ec3 100644 --- a/src/storage/blocksstable/ob_datum_row.h +++ b/src/storage/blocksstable/ob_datum_row.h @@ -358,7 +358,7 @@ struct ObDatumRow { OB_UNIS_VERSION(1); public: - ObDatumRow(); + ObDatumRow(const uint64_t tenant_id = MTL_ID()); ~ObDatumRow(); int init(common::ObIAllocator &allocator, const int64_t capacity, char *trans_info_ptr = nullptr); int init(const int64_t capacity); diff --git a/src/storage/compaction/ob_compaction_memory_pool.cpp b/src/storage/compaction/ob_compaction_memory_pool.cpp index 1de1e1667..4f47684f6 100644 --- a/src/storage/compaction/ob_compaction_memory_pool.cpp +++ b/src/storage/compaction/ob_compaction_memory_pool.cpp @@ -201,7 +201,7 @@ int ObTenantCompactionMemPool::mtl_init(ObTenantCompactionMemPool* &mem_pool) } else if (OB_ISNULL(malloc_allocator = ObMallocAllocator::get_instance())) { ret = OB_ERR_UNEXPECTED; LOG_WARN("get null malloc allocator, cannnot reserve memory for mini compaction", K(ret), K(tenant_id)); - } else if (OB_FAIL(malloc_allocator->set_tenant_ctx_idle(tenant_id, ObCtxIds::MERGE_RESERVE_CTX_ID, RESERVE_MEM_SIZE, true/*reserve*/))) { + } else if (OB_FAIL(malloc_allocator->set_tenant_ctx_idle(tenant_id, ObCtxIds::MERGE_RESERVE_CTX_ID, RESERVE_MEM_SIZE, !MTL_IS_MINI_MODE()/*reserve*/))) { LOG_WARN("failed to reserve memory for mini compaction", K(ret)); } else { mem_pool->reserve_mode_signal_ = 1; diff --git a/src/storage/compaction/ob_partition_merger.cpp b/src/storage/compaction/ob_partition_merger.cpp index ad2d8cc4d..86257f547 100644 --- a/src/storage/compaction/ob_partition_merger.cpp +++ b/src/storage/compaction/ob_partition_merger.cpp @@ -385,7 +385,7 @@ int ObPartitionMerger::open_macro_writer(ObMergeParameter &merge_param) } if (OB_ISNULL(macro_writer_)) { - ret = OB_ERR_UNEXPECTED; + ret = OB_ALLOCATE_MEMORY_FAILED; STORAGE_LOG(WARN, "Failed to allocate memory for macro writer", K(ret), K(merge_param)); } else if (OB_FAIL(macro_writer_->open(data_store_desc_, macro_start_seq))) { STORAGE_LOG(WARN, "Failed to open macro block writer", K(ret));