-
Notifications
You must be signed in to change notification settings - Fork 12k
[ISSUE #314] Heartbeat handler use independently thread pool #315
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
Conversation
|
I am wondering why notifying clients of membership change could take up the thread pool? Note notify is performed in an asynchronous non-blocking and one-way manner. Can you share your case details justifying this is indeed the root cause? |
|
@fuyou001 thoughts? |
|
some reasons, I can't say more about it. @lizhanhui @vongosling |
|
@fuyou001 I agree with @lizhanhui , the others command would not take up the thread pool. It's useless to isolate the pool. |
|
Considering heartbeat plays a major role in maintaining cluster members in sync, I'd agree to move it to a dedicated thread-pool so that it won't be delayed too much in case broker is under heavy pressure. |
|
@vsair I talked to @fuyou001 privately via email. The reason he is reluctant to share is that disclosing these technical details may bring about security threats to their commercial service before applying patches to all serving brokers. I'd post updates to share the scenario and explain more at the earliest convenient time. |
|
It seems to be more reasonable to isolate the time-taking notification works with Heartbeat, so +1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM if we have finished the checklist before a merge @fuyou001 Another question, do you consider it is rational if we have created so many threadpool?
# Conflicts: # broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java
What is the purpose of the change
thousands of client Sub message, when subscription change, broker notify all client with same cid,
causing related ThreadPoolExecutor pool full, so Heartbeat use independently thread pool
Brief changelog
increase notify consumerIds changed semaphore size
Verifying this change
Follow this checklist to help us incorporate your contribution quickly and easily:
[ROCKETMQ-XXX] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyleto make sure basic checks pass. Runmvn clean install -DskipITsto make sure unit-test pass. Runmvn clean test-compile failsafe:integration-testto make sure integration-test pass.