Skip to content

[improve][broker] Change bookkeeperClientSeparatedIoThreadsEnabled to True by default#25812

Open
zhanglistar wants to merge 1 commit into
apache:masterfrom
bigo-sg:impr/bookkeeperClientSeparatedIoThreadsEnabled
Open

[improve][broker] Change bookkeeperClientSeparatedIoThreadsEnabled to True by default#25812
zhanglistar wants to merge 1 commit into
apache:masterfrom
bigo-sg:impr/bookkeeperClientSeparatedIoThreadsEnabled

Conversation

@zhanglistar
Copy link
Copy Markdown

@zhanglistar zhanglistar commented May 19, 2026

Motivation

Apache Pulsar PR #16333 introduced bookkeeperClientSeparatedIoThreadsEnabled so the BookKeeper client can use a dedicated IO thread pool instead of sharing the broker's Pulsar EventLoopGroup. The upstream default remained false for backward compatibility.

In our deployment, sharing IO threads between the broker and the BookKeeper client can cause contention under storage-heavy workloads. Enabling separated IO threads by default isolates BookKeeper network I/O from broker I/O and better matches our production expectations.

Modifications

  • Set bookkeeperClientSeparatedIoThreadsEnabled=true in conf/broker.conf and conf/standalone.conf, and update related comments.
  • Change the Java default in ServiceConfiguration from false to true, and update @FieldContext documentation.
  • Update unit tests to reflect the new default:
    • ServiceConfigurationTest#testBookKeeperClientIoThreads
    • BookKeeperClientFactoryImplTest#testBookKeeperIoThreadsConfiguration

Operators who want the previous behavior can set:

bookkeeperClientSeparatedIoThreadsEnabled=false

Verifying this change

  • Make sure that the change passes the CI checks.

(Please pick either of the following options)

This change is a trivial rework / code cleanup without any test coverage.

Does this pull request potentially affect one of the following parts:

If the box was checked, please highlight the changes

  • Dependencies (add or upgrade a dependency)
  • The public API
  • The schema
  • The default values of configurations
  • The threading model
  • The binary protocol
  • The REST endpoints
  • The admin CLI options
  • The metrics
  • Anything that affects deployment

@zhanglistar
Copy link
Copy Markdown
Author

#19061 Not related flaky test.

@lhotari lhotari added this to the 5.0.0-M1 milestone May 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants