[ https://issues.apache.org/jira/browse/KAFKA-19264?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chia-Ping Tsai resolved KAFKA-19264. ------------------------------------ Fix Version/s: 4.1.0 Resolution: Fixed > Remove fallback for thread pool sizes in RemoteLogManagerConfig > --------------------------------------------------------------- > > Key: KAFKA-19264 > URL: https://issues.apache.org/jira/browse/KAFKA-19264 > Project: Kafka > Issue Type: Task > Components: Tiered-Storage > Reporter: Kuan Po Tseng > Assignee: Kuan Po Tseng > Priority: Minor > Fix For: 4.1.0 > > > The fallback mechanism was first introduced in > [KIP-950|https://cwiki.apache.org/confluence/x/joqzDw]. According to the > proposal, if no thread values are set for > {{remote.log.manager.copier.thread.pool.size}} and > {{{}remote.log.manager.expiration.thread.pool.size{}}}, these two configs > would default to using the value of > {{{}remote.log.manager.thread.pool.size{}}}. > As quoted from the KIP: > {quote}If no thread values are set for the two new configurations presented > later on in the document we will default to using the same number of threads > in each pool as detailed by remote.log.manager.thread.pool.size. > {quote} > This fallback behavior was implemented in > [https://github.com/apache/kafka/commit/84ab3b9a5c4930f5ae047df088e38c456c7cde54]. > However, this approach was abandoned in > [KIP-1030|https://cwiki.apache.org/confluence/x/FAqpEQ], where the default > values for {{copier}} and {{expiration}} thread pool sizes were changed from > {{-1}} to {{{}10{}}}. The related commit can be found in > [https://github.com/apache/kafka/commit/3b1bd3812e48d488e4b6b53a9085d6552e8adf02]. > Additionally, both {{remote.log.manager.copier.thread.pool.size}} and > {{remote.log.manager.expiration.thread.pool.size}} now include a > configuration validator that enforces a minimum value of {{{}1{}}}. This > means the fallback mechanism should be removed from > [RemoteLogManagerConfig.java|https://github.com/apache/kafka/blob/trunk/storage/src/main/java/org/apache/kafka/server/log/remote/storage/RemoteLogManagerConfig.java] > to align with the new defaults and validation. > In short, RemoteLogManagerConfig should apply the following changes: > {code:java} > public int remoteLogManagerCopierThreadPoolSize() { > - int size = > config.getInt(REMOTE_LOG_MANAGER_COPIER_THREAD_POOL_SIZE_PROP); > - return size == -1 ? remoteLogManagerThreadPoolSize() : size; > + return > config.getInt(REMOTE_LOG_MANAGER_COPIER_THREAD_POOL_SIZE_PROP); > } > public int remoteLogManagerExpirationThreadPoolSize() { > - int size = > config.getInt(REMOTE_LOG_MANAGER_EXPIRATION_THREAD_POOL_SIZE_PROP); > - return size == -1 ? remoteLogManagerThreadPoolSize() : size; > + return > config.getInt(REMOTE_LOG_MANAGER_EXPIRATION_THREAD_POOL_SIZE_PROP); > }{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)