[CP] increase default log_archive thread count for small tenant
This commit is contained in:
@ -91,6 +91,7 @@ int ObArchiveScheduler::modify_thread_count_()
|
|||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
int64_t archive_concurrency = 0;
|
int64_t archive_concurrency = 0;
|
||||||
|
const int64_t MIN_ARCHIVE_THREAD_COUNT = 2L;
|
||||||
omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id_));
|
omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id_));
|
||||||
const int64_t log_archive_concurrency =
|
const int64_t log_archive_concurrency =
|
||||||
tenant_config.is_valid() ? tenant_config->log_archive_concurrency : 0L;
|
tenant_config.is_valid() ? tenant_config->log_archive_concurrency : 0L;
|
||||||
@ -99,7 +100,7 @@ int ObArchiveScheduler::modify_thread_count_()
|
|||||||
if (0 == log_archive_concurrency) {
|
if (0 == log_archive_concurrency) {
|
||||||
const int64_t max_cpu = MTL_CPU_COUNT();
|
const int64_t max_cpu = MTL_CPU_COUNT();
|
||||||
if (max_cpu <= 8) {
|
if (max_cpu <= 8) {
|
||||||
archive_concurrency = max_cpu;
|
archive_concurrency = std::min(max_cpu * 2, 8L);
|
||||||
} else if (max_cpu <= 32) {
|
} else if (max_cpu <= 32) {
|
||||||
archive_concurrency = std::max(max_cpu / 2, 8L);
|
archive_concurrency = std::max(max_cpu / 2, 8L);
|
||||||
} else {
|
} else {
|
||||||
@ -108,8 +109,8 @@ int ObArchiveScheduler::modify_thread_count_()
|
|||||||
} else {
|
} else {
|
||||||
archive_concurrency = log_archive_concurrency;
|
archive_concurrency = log_archive_concurrency;
|
||||||
}
|
}
|
||||||
const int64_t fetcher_currency = std::max(1L, archive_concurrency / 3);
|
const int64_t fetcher_currency = std::max(MIN_ARCHIVE_THREAD_COUNT, archive_concurrency / 3);
|
||||||
const int64_t sender_concurrency = std::max(1L, archive_concurrency - fetcher_currency);
|
const int64_t sender_concurrency = std::max(MIN_ARCHIVE_THREAD_COUNT, archive_concurrency - fetcher_currency);
|
||||||
if (OB_FAIL(sender_->modify_thread_count(sender_concurrency))) {
|
if (OB_FAIL(sender_->modify_thread_count(sender_concurrency))) {
|
||||||
ARCHIVE_LOG(WARN, "modify sender thread failed", K(ret));
|
ARCHIVE_LOG(WARN, "modify sender thread failed", K(ret));
|
||||||
} else if (OB_FAIL(fetcher_->modify_thread_count(fetcher_currency))) {
|
} else if (OB_FAIL(fetcher_->modify_thread_count(fetcher_currency))) {
|
||||||
|
|||||||
Reference in New Issue
Block a user