[CP] increase default log_archive thread count for small tenant

This commit is contained in:
taoshuning
2023-10-10 12:10:01 +00:00
committed by ob-robot
parent ee1b331ab4
commit 6fea5404ff

View File

@ -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))) {