[BUG.FIX] fix loop in ObTmpTenantMemBlockManager::check_memory_limit()
This commit is contained in:
parent
2d7760cb99
commit
d5980a4134
@ -1080,7 +1080,7 @@ int ObTmpTenantMemBlockManager::check_memory_limit()
|
|||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
const int64_t timeout_ts = THIS_WORKER.get_timeout_ts();
|
const int64_t timeout_ts = THIS_WORKER.get_timeout_ts();
|
||||||
while (OB_SUCC(ret) && get_tenant_mem_block_num() < t_mblk_map_.size()) {
|
while (OB_SUCC(ret) && get_tenant_mem_block_num() < t_mblk_map_.size() && !wait_info_queue_.is_empty()) {
|
||||||
ObThreadCondGuard guard(cond_);
|
ObThreadCondGuard guard(cond_);
|
||||||
if (OB_FAIL(guard.get_ret())) {
|
if (OB_FAIL(guard.get_ret())) {
|
||||||
STORAGE_LOG(ERROR, "fail to guard request condition", K(ret));
|
STORAGE_LOG(ERROR, "fail to guard request condition", K(ret));
|
||||||
@ -1130,6 +1130,7 @@ int ObTmpTenantMemBlockManager::cleanup()
|
|||||||
ret = OB_NOT_INIT;
|
ret = OB_NOT_INIT;
|
||||||
STORAGE_LOG(WARN, "ObTmpBlockCache has not been inited", K(ret));
|
STORAGE_LOG(WARN, "ObTmpBlockCache has not been inited", K(ret));
|
||||||
} else if (OB_FAIL(check_memory_limit())) {
|
} else if (OB_FAIL(check_memory_limit())) {
|
||||||
|
STORAGE_LOG(WARN, "fail to check memory limit", K(ret), K(t_mblk_map_.size()), K(get_tenant_mem_block_num()));
|
||||||
} else {
|
} else {
|
||||||
const int64_t wash_threshold = get_tenant_mem_block_num() * 0.8;
|
const int64_t wash_threshold = get_tenant_mem_block_num() * 0.8;
|
||||||
Heap heap(compare_, &allocator);
|
Heap heap(compare_, &allocator);
|
||||||
@ -1512,7 +1513,7 @@ int ObTmpTenantMemBlockManager::exec_wait()
|
|||||||
if (OB_TMP_FAIL(cond_.broadcast())) {
|
if (OB_TMP_FAIL(cond_.broadcast())) {
|
||||||
STORAGE_LOG(ERROR, "signal wash condition failed", K(ret), K(tmp_ret));
|
STORAGE_LOG(ERROR, "signal wash condition failed", K(ret), K(tmp_ret));
|
||||||
}
|
}
|
||||||
if (loop_nums > 0) {
|
if (loop_nums > 0 || REACH_TIME_INTERVAL(1000 * 1000L)/*1s*/) {
|
||||||
const int64_t washing_count = ATOMIC_LOAD(&washing_count_);
|
const int64_t washing_count = ATOMIC_LOAD(&washing_count_);
|
||||||
int64_t block_cache_num = -1;
|
int64_t block_cache_num = -1;
|
||||||
int64_t page_cache_num = -1;
|
int64_t page_cache_num = -1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user