[FEAT MERGE] log4100 branch

Co-authored-by: tino247 <tino247@126.com>
Co-authored-by: BinChenn <binchenn.bc@gmail.com>
Co-authored-by: HaHaJeff <jeffzhouhhh@gmail.com>
This commit is contained in:
obdev
2023-01-28 18:17:31 +08:00
committed by ob-robot
parent a269ffe6be
commit 50024b39cd
772 changed files with 60275 additions and 11301 deletions

View File

@ -33,6 +33,7 @@ ObTenantMutilAllocator::ObTenantMutilAllocator(uint64_t tenant_id)
LOG_IO_FLUSH_META_TASK_SIZE(sizeof(palf::LogIOFlushMetaTask)),
LOG_IO_TRUNCATE_PREFIX_BLOCKS_TASK_SIZE(sizeof(palf::LogIOTruncatePrefixBlocksTask)),
PALF_FETCH_LOG_TASK_SIZE(sizeof(palf::FetchLogTask)),
LOG_IO_FLASHBACK_TASK_SIZE(sizeof(palf::LogIOFlashbackTask)),
clog_blk_alloc_(),
inner_table_replay_blk_alloc_(REPLAY_MEM_LIMIT_THRESHOLD * INNER_TABLE_REPLAY_MEM_PERCENT / 100),
user_table_replay_blk_alloc_(REPLAY_MEM_LIMIT_THRESHOLD * (100 - INNER_TABLE_REPLAY_MEM_PERCENT) / 100),
@ -46,7 +47,8 @@ ObTenantMutilAllocator::ObTenantMutilAllocator(uint64_t tenant_id)
log_io_flush_meta_task_alloc_(LOG_IO_FLUSH_META_TASK_SIZE, ObMemAttr(tenant_id, "FlushMeta"), choose_blk_size(LOG_IO_FLUSH_META_TASK_SIZE), clog_blk_alloc_, this),
log_io_truncate_prefix_blocks_task_alloc_(LOG_IO_TRUNCATE_PREFIX_BLOCKS_TASK_SIZE, ObMemAttr(tenant_id, "FlushMeta"), choose_blk_size(LOG_IO_TRUNCATE_PREFIX_BLOCKS_TASK_SIZE), clog_blk_alloc_, this),
palf_fetch_log_task_alloc_(PALF_FETCH_LOG_TASK_SIZE, ObMemAttr(tenant_id, ObModIds::OB_FETCH_LOG_TASK), choose_blk_size(PALF_FETCH_LOG_TASK_SIZE), clog_blk_alloc_, this),
replay_log_task_alloc_(ObMemAttr(tenant_id, ObModIds::OB_LOG_REPLAY_TASK), ObVSliceAlloc::DEFAULT_BLOCK_SIZE)
replay_log_task_alloc_(ObMemAttr(tenant_id, ObModIds::OB_LOG_REPLAY_TASK), common::OB_MALLOC_BIG_BLOCK_SIZE),
log_io_flashback_task_alloc_(LOG_IO_FLASHBACK_TASK_SIZE, ObMemAttr(tenant_id, "Flashback"), choose_blk_size(LOG_IO_FLASHBACK_TASK_SIZE), clog_blk_alloc_, this)
{
// set_nway according to tenant's max_cpu
double min_cpu = 0;
@ -150,12 +152,14 @@ int64_t ObTenantMutilAllocator::get_pending_replay_mutator_size() const
return ATOMIC_LOAD(&pending_replay_mutator_size_);
}
LogIOFlushLogTask *ObTenantMutilAllocator::alloc_log_io_flush_log_task()
LogIOFlushLogTask *ObTenantMutilAllocator::alloc_log_io_flush_log_task(
const int64_t palf_id, const int64_t palf_epoch)
{
LogIOFlushLogTask *ret_ptr = NULL;
void *ptr = log_io_flush_log_task_alloc_.alloc();
if (NULL != ptr) {
ret_ptr = new(ptr)LogIOFlushLogTask();
ret_ptr = new(ptr)LogIOFlushLogTask(palf_id, palf_epoch);
ATOMIC_INC(&flying_log_task_);
}
return ret_ptr;
}
@ -165,15 +169,17 @@ void ObTenantMutilAllocator::free_log_io_flush_log_task(LogIOFlushLogTask *ptr)
if (OB_LIKELY(NULL != ptr)) {
ptr->~LogIOFlushLogTask();
log_io_flush_log_task_alloc_.free(ptr);
ATOMIC_DEC(&flying_log_task_);
}
}
LogIOTruncateLogTask *ObTenantMutilAllocator::alloc_log_io_truncate_log_task()
LogIOTruncateLogTask *ObTenantMutilAllocator::alloc_log_io_truncate_log_task(
const int64_t palf_id, const int64_t palf_epoch)
{
LogIOTruncateLogTask *ret_ptr = NULL;
void *ptr = log_io_truncate_log_task_alloc_.alloc();
if (NULL != ptr) {
ret_ptr = new(ptr) LogIOTruncateLogTask();
ret_ptr = new(ptr) LogIOTruncateLogTask(palf_id, palf_epoch);
}
return ret_ptr;
}
@ -186,12 +192,14 @@ void ObTenantMutilAllocator::free_log_io_truncate_log_task(LogIOTruncateLogTask
}
}
LogIOFlushMetaTask *ObTenantMutilAllocator::alloc_log_io_flush_meta_task()
LogIOFlushMetaTask *ObTenantMutilAllocator::alloc_log_io_flush_meta_task(
const int64_t palf_id, const int64_t palf_epoch)
{
LogIOFlushMetaTask *ret_ptr = NULL;
void *ptr = log_io_flush_meta_task_alloc_.alloc();
if (NULL != ptr) {
ret_ptr = new(ptr)LogIOFlushMetaTask();
ret_ptr = new(ptr)LogIOFlushMetaTask(palf_id, palf_epoch);
ATOMIC_INC(&flying_meta_task_);
}
return ret_ptr;
}
@ -201,15 +209,17 @@ void ObTenantMutilAllocator::free_log_io_flush_meta_task(LogIOFlushMetaTask *ptr
if (OB_LIKELY(NULL != ptr)) {
ptr->~LogIOFlushMetaTask();
log_io_flush_meta_task_alloc_.free(ptr);
ATOMIC_DEC(&flying_meta_task_);
}
}
palf::LogIOTruncatePrefixBlocksTask *ObTenantMutilAllocator::alloc_log_io_truncate_prefix_blocks_task()
palf::LogIOTruncatePrefixBlocksTask *ObTenantMutilAllocator::alloc_log_io_truncate_prefix_blocks_task(
const int64_t palf_id, const int64_t palf_epoch)
{
LogIOTruncatePrefixBlocksTask *ret_ptr = NULL;
void *ptr = log_io_truncate_prefix_blocks_task_alloc_.alloc();
if (NULL != ptr) {
ret_ptr = new(ptr)LogIOTruncatePrefixBlocksTask();
ret_ptr = new(ptr)LogIOTruncatePrefixBlocksTask(palf_id ,palf_epoch);
}
return ret_ptr;
}
@ -265,6 +275,24 @@ void ObTenantMutilAllocator::free_replay_log_buf(void *ptr)
}
}
palf::LogIOFlashbackTask *ObTenantMutilAllocator::alloc_log_io_flashback_task(const int64_t palf_id, const int64_t palf_epoch)
{
LogIOFlashbackTask *ret_ptr = NULL;
void *ptr = log_io_flashback_task_alloc_.alloc();
if (NULL != ptr) {
ret_ptr = new(ptr)LogIOFlashbackTask(palf_id, palf_epoch);
}
return ret_ptr;
}
void ObTenantMutilAllocator::free_log_io_flashback_task(palf::LogIOFlashbackTask *ptr)
{
if (OB_LIKELY(NULL != ptr)) {
ptr->~LogIOFlashbackTask();
log_io_flashback_task_alloc_.free(ptr);
}
}
void ObTenantMutilAllocator::set_nway(const int32_t nway)
{
if (nway > 0) {