Split temporary file's ObSEArray into tenant's memory.

This commit is contained in:
ND501
2024-02-18 09:08:56 +00:00
committed by ob-robot
parent befec024ee
commit 22ea13c705
2 changed files with 7 additions and 1 deletions

View File

@ -1243,6 +1243,7 @@ int ObTmpFile::sync(const int64_t timeout_ms)
// iter all blocks, execute async wash.
common::hash::ObHashSet<int64_t>::const_iterator iter;
common::ObSEArray<ObTmpTenantMemBlockManager::ObIOWaitInfoHandle, 1> handles;
handles.set_attr(ObMemAttr(MTL_ID(), "TMP_SYNC_HDL"));
for (iter = blk_id_set.begin(); OB_SUCC(ret) && iter != blk_id_set.end(); ++iter) {
const int64_t &blk_id = iter->first;
ObTmpTenantMemBlockManager::ObIOWaitInfoHandle handle;
@ -1721,6 +1722,7 @@ int ObTmpFileManager::remove_tenant_file(const uint64_t tenant_id)
{
int ret = OB_SUCCESS;
common::ObSEArray<int64_t, 32> fd_list;
fd_list.set_attr(ObMemAttr(MTL_ID(), "TMP_FD_LIST"));
RmTenantTmpFileOp rm_tenant_file_op(tenant_id, &fd_list);
if (IS_NOT_INIT) {
ret = OB_NOT_INIT;

View File

@ -426,6 +426,7 @@ ObTmpMacroBlock::ObTmpMacroBlock()
alloc_time_(0),
access_time_(0)
{
using_extents_.set_attr(ObMemAttr(MTL_ID(), "TMP_US_META"));
}
ObTmpMacroBlock::~ObTmpMacroBlock()
@ -1306,7 +1307,9 @@ int ObTmpTenantFileStore::read_page(ObTmpMacroBlock *block, ObTmpBlockIOInfo &io
int32_t page_nums = 0;
common::ObIArray<ObTmpPageIOInfo> *page_io_infos = nullptr;
void *buf = ob_malloc(sizeof(common::ObSEArray<ObTmpPageIOInfo, ObTmpFilePageBuddy::MAX_PAGE_NUMS>), "TmpReadPage");
void *buf =
ob_malloc(sizeof(common::ObSEArray<ObTmpPageIOInfo, ObTmpFilePageBuddy::MAX_PAGE_NUMS>),
ObMemAttr(MTL_ID(), "TmpReadPage"));
if (OB_ISNULL(buf)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
STORAGE_LOG(WARN, "fail to alloc a buf", K(ret));
@ -1841,6 +1844,7 @@ int ObTmpFileStore::get_macro_block_list(ObIArray<TenantTmpBlockCntPair> &tmp_bl
} else {
tmp_block_cnt_pairs.reset();
common::ObSEArray<MacroBlockId, 64> macro_id_list;
macro_id_list.set_attr(ObMemAttr(MTL_ID(), "TMP_MB_LIST"));
TenantFileStoreMap::iterator iter;
ObTmpTenantFileStore *tmp = NULL;
for (iter = tenant_file_stores_.begin(); OB_SUCC(ret) && iter != tenant_file_stores_.end();