79 lines
2.0 KiB
C++
79 lines
2.0 KiB
C++
/**
|
|
* Copyright (c) 2021 OceanBase
|
|
* OceanBase CE is licensed under Mulan PubL v2.
|
|
* You can use this software according to the terms and conditions of the Mulan PubL v2.
|
|
* You may obtain a copy of Mulan PubL v2 at:
|
|
* http://license.coscl.org.cn/MulanPubL-2.0
|
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
|
* See the Mulan PubL v2 for more details.
|
|
*/
|
|
|
|
#define USING_LOG_PREFIX OBLOG_FETCHER
|
|
|
|
#include "ob_log_fetch_stream_pool.h"
|
|
|
|
#include "share/ob_define.h" // OB_SERVER_TENANT_ID
|
|
#include "lib/allocator/ob_mod_define.h" // ObModIds
|
|
#include "lib/utility/ob_macro_utils.h" // OB_FAIL
|
|
#include "lib/oblog/ob_log_module.h" // LOG_ERROR
|
|
|
|
using namespace oceanbase::common;
|
|
namespace oceanbase
|
|
{
|
|
namespace liboblog
|
|
{
|
|
|
|
FetchStreamPool::FetchStreamPool() : pool_()
|
|
{}
|
|
|
|
FetchStreamPool::~FetchStreamPool()
|
|
{
|
|
destroy();
|
|
}
|
|
|
|
int FetchStreamPool::init(const int64_t cached_fs_count)
|
|
{
|
|
int ret = OB_SUCCESS;
|
|
if (OB_FAIL(pool_.init(cached_fs_count,
|
|
ObModIds::OB_LOG_FETCH_STREAM_POOL,
|
|
OB_SERVER_TENANT_ID,
|
|
DEFAULT_BLOCK_SIZE))) {
|
|
LOG_ERROR("init fetch stream obj pool fail", KR(ret), K(cached_fs_count));
|
|
} else {
|
|
// succ
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
void FetchStreamPool::destroy()
|
|
{
|
|
pool_.destroy();
|
|
}
|
|
|
|
int FetchStreamPool::alloc(FetchStream *&fs)
|
|
{
|
|
return pool_.alloc(fs);
|
|
}
|
|
|
|
int FetchStreamPool::free(FetchStream *fs)
|
|
{
|
|
return pool_.free(fs);
|
|
}
|
|
|
|
void FetchStreamPool::print_stat()
|
|
{
|
|
int64_t alloc_count = pool_.get_alloc_count();
|
|
int64_t free_count = pool_.get_free_count();
|
|
int64_t fixed_count = pool_.get_fixed_count();
|
|
int64_t used_count = alloc_count - free_count;
|
|
int64_t dynamic_count = (alloc_count > fixed_count) ? alloc_count - fixed_count : 0;
|
|
|
|
_LOG_INFO("[STAT] [FETCH_STREAM_POOL] USED=%ld FREE=%ld FIXED=%ld DYNAMIC=%ld",
|
|
used_count, free_count, fixed_count, dynamic_count);
|
|
}
|
|
|
|
}
|
|
}
|