Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] KAFKA-17928: Make remote log manager thread-pool configs dynamic #17793

Open
wants to merge 2 commits into
base: trunk
Choose a base branch
from

Conversation

peterxcli
Copy link
Contributor

Description

Add ability to dynamically update remote storage thread pool sizes and implement
partition readiness check:

  • Add methods to RemoteLogManager to update thread pool sizes:
    • updateCopyThreadPoolSize
    • updateExpirationThreadPoolSize
    • updateReaderThreadPoolSize
  • Add thread pool configuration properties to DynamicRemoteLogConfig
  • Add RLMM readiness check before executing remote storage tasks
  • Update validation and reconfiguration logic in DynamicRemoteLogConfig

This change allows operators to tune thread pool sizes at runtime and prevents
operations on partitions that aren't ready for remote storage operations.

Related Link

More detailed description of your change,
if necessary. The PR title and PR message become
the squashed commit message, so use a separate
comment to ping reviewers.

Summary of testing strategy (including rationale)
for the feature or bug fix. Unit and/or integration
tests are expected for any behaviour change and
system tests should be considered for larger changes.

Committer Checklist (excluded from commit message)

  • Verify design and implementation
  • Verify test coverage and CI build status
  • Verify documentation (including upgrade notes)

Add isReady() method to RemoteLogMetadataManager interface to check if a partition
is ready to serve remote storage operations. Implement the method across concrete
classes with appropriate checks:

- Add default implementation in RemoteLogMetadataManager interface
- Add implementation in NoOpRemoteLogMetadataManager
- Add implementation in ClassLoaderAwareRemoteLogMetadataManager
- Add implementation in TopicBasedRem
…heck

Add ability to dynamically update remote storage thread pool sizes and implement
partition readiness check:

- Add methods to RemoteLogManager to update thread pool sizes:
  - updateCopyThreadPoolSize
  - updateExpirationThreadPoolSize
  - updateReaderThreadPoolSize
- Add thread pool configuration properties to DynamicRemoteLogConfig
- Add RLMM readiness check before executing remote storage tasks
- Update validation and reconfiguration logic in DynamicRemoteLogConfig

This change allows operators to tune thread pool sizes at runtime and prevents
operations on partitions that aren't ready for remote storage operations.
@github-actions github-actions bot added core Kafka Broker storage Pull requests that target the storage module small Small PRs labels Nov 13, 2024
@divijvaidya divijvaidya added the tiered-storage Related to the Tiered Storage feature label Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core Kafka Broker small Small PRs storage Pull requests that target the storage module tiered-storage Related to the Tiered Storage feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants