[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;
int64_t archive_concurrency = 0;
const int64_t MIN_ARCHIVE_THREAD_COUNT = 2L;
omt::ObTenantConfigGuard tenant_config(TENANT_CONF(tenant_id_));
const int64_t log_archive_concurrency =
tenant_config.is_valid() ? tenant_config->log_archive_concurrency : 0L;
@ -99,7 +100,7 @@ int ObArchiveScheduler::modify_thread_count_()
if (0 == log_archive_concurrency) {
const int64_t max_cpu = MTL_CPU_COUNT();
if (max_cpu <= 8) {
archive_concurrency = max_cpu;
archive_concurrency = std::min(max_cpu * 2, 8L);
} else if (max_cpu <= 32) {
archive_concurrency = std::max(max_cpu / 2, 8L);
} else {
@ -108,8 +109,8 @@ int ObArchiveScheduler::modify_thread_count_()
} else {
archive_concurrency = log_archive_concurrency;
}
const int64_t fetcher_currency = std::max(1L, archive_concurrency / 3);
const int64_t sender_concurrency = std::max(1L, archive_concurrency - fetcher_currency);
const int64_t fetcher_currency = std::max(MIN_ARCHIVE_THREAD_COUNT, archive_concurrency / 3);
const int64_t sender_concurrency = std::max(MIN_ARCHIVE_THREAD_COUNT, archive_concurrency - fetcher_currency);
if (OB_FAIL(sender_->modify_thread_count(sender_concurrency))) {
ARCHIVE_LOG(WARN, "modify sender thread failed", K(ret));
} else if (OB_FAIL(fetcher_->modify_thread_count(fetcher_currency))) {