[
https://issues.apache.org/jira/browse/ROCKETMQ-184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15980364#comment-15980364
]
ASF GitHub Bot commented on ROCKETMQ-184:
-----------------------------------------
Github user lizhanhui commented on the issue:
https://github.com/apache/incubator-rocketmq/pull/95
You are right that more changes are required for my suggested approach.
But, IMO, the suggested way is more unified in design and may also save a few
memory footprint in case we have very large semaphore initial capacity.
Indeed, this is the place we need to enhance.
Let's bring more guys into discussion before you implement the suggested
approach. They should easily conceive what's going on here via checking
changes made in your PR. Any opinion on this issue? @zhouxinyu @shroman
@vongosling
> It takes too long(3-33 seconds) to switch to read from slave when master
> crashes
> --------------------------------------------------------------------------------
>
> Key: ROCKETMQ-184
> URL: https://issues.apache.org/jira/browse/ROCKETMQ-184
> Project: Apache RocketMQ
> Issue Type: Improvement
> Components: rocketmq-client, rocketmq-remoting
> Reporter: Jaskey Lam
> Assignee: Xiaorui Wang
> Fix For: 4.2.0-incubating
>
>
> When master crashes, no notifier callback is triggered to pull message again.
> Instead, it relies on the scan service to trigger timeout and then re pull.
> But the pulling command has 30 seconds timeout, and after timeout, pulling
> operation will be scheduled after 3 seconds.
> So it takes 3 to 33 seconds to switch to slave, which is too long and can be
> optimized.
> The root cause is the below repull cost too long to be triggered when master
> crashes
> {code}
> @Override
> public void onException(Throwable e) {
> if
> (!pullRequest.getMessageQueue().getTopic().startsWith(MixAll.RETRY_GROUP_TOPIC_PREFIX))
> {
> log.warn("execute the pull request exception", e);
> }
>
> DefaultMQPushConsumerImpl.this.executePullRequestLater(pullRequest,
> PULL_TIME_DELAY_MILLS_WHEN_EXCEPTION);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)