-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
HBASE-27683 Should support single call queue mode for RPC handlers wh… #5259
base: master
Are you sure you want to change the base?
Conversation
…ile separating by request type
💔 -1 overall
This message was automatically generated. |
🎊 +1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
@@ -76,7 +76,9 @@ public RWQueueRpcExecutor(final String name, final int handlerCount, final int m | |||
numWriteQueues = calcNumWriters(this.numCallQueues, callqReadShare); | |||
writeHandlersCount = Math.max(numWriteQueues, calcNumWriters(handlerCount, callqReadShare)); | |||
|
|||
int readQueues = calcNumReaders(this.numCallQueues, callqReadShare); | |||
int readQueues = callqReadShare > 0 ? |
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.
What is the return value of calcNumReaders if callqReadShare is 0?
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.
If callqReadShare
==0, it will not be an instance of RWQueueRpcExecutor
, then will not call calcNumReaders
. But readQueues
will be 0 under other circumstances by the origin design, when the numCallQueues
=1 and numWriteQueues
=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.
What do you mean by "will not call calcNumReaders"? Either in the old code or in your new code, we will always call the calcNumReaders method?
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.
Thanks. I think when callqReadShare is 0, the RpcExecutor will be FastPathBalancedQueueRpcExecutor
by default (see SimpleRpcScheduler line 88), not based on RWQueueRpcExecutor(which by default will create FastPathRWQueueRpcExecutor
), and then there are not distinguished queues, all queues serve for read and write.
…ile separating by request type