Status

Current state: "Under Discussion"

Discussion thread

JIRA:

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

Motivation

The Kafka Remote Log Manager currently uses three different thread pools to handle various types of tasks, but with inconsistent configuration naming and behavior, leading to several issues:

Although the original plan was to deprecate remote.log.manager.thread.pool.size

after the implementation of KIP-950, it was retained for follower tasks, and the intended refactoring was not fully carried out.

To resolve these issues, this KIP propose introducing a new dynamic configuration, remote.log.manager.follower.thread.pool.size, while marking the old configuration as deprecated. This change would enhance consistency and maintainability, providing users with a more intuitive and flexible configuration experience.

Public Interfaces

Proposed Changes

The proposal introduces a new configuration for the Remote Log Manager: remote.log.manager.follower.thread.pool.size.

This configuration will support dynamic changes, allowing thread counts to be adjusted smoothly (with step increments from x/2 to x*2).

Compatibility, Deprecation, and Migration Plan

To ensure backward compatibility, the deprecated configuration remote.log.manager.thread.pool.size will still be functional. However, it should be removed in future major releases.

If both remote.log.manager.thread.pool.size and remote.log.manager.follower.thread.pool.size are set, the latter will take precedence.

Test Plan

The patch will include both unit and integration tests to ensure full coverage.

Rejected Alternatives