[
https://issues.apache.org/jira/browse/HBASE-6619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13438187#comment-13438187
]
Michal Gregorczyk commented on HBASE-6619:
------------------------------------------
It is event for which we are waiting on file descriptor. We do reads in
asynchronous way. We have one thread (Listener) waiting on set of file
descriptors (connections). Every time there is something to read from
connection we first deregister interest in read operation on that descriptor
and then pass it to another thread to do read. When read operation is done, the
thread parses new data and after queueing new Call object it registers read
interest on that descriptor again. It involves calling
SelectionKey.interestOps(int) (which according to documentation can block, but
does not have to - implementation dependent), and waking up Listener thread.
After that we can read from the connection again.
To improve performance we can do 2 things:
1. do something not to register and deregister interest in read
2. parse new data in handler thread, instead of thread that performs read
operation.
> Do no unregister and re-register interest ops in RPC
> ----------------------------------------------------
>
> Key: HBASE-6619
> URL: https://issues.apache.org/jira/browse/HBASE-6619
> Project: HBase
> Issue Type: Bug
> Components: ipc
> Reporter: Karthik Ranganathan
> Assignee: Michal Gregorczyk
>
> While investigating perf of HBase, Michal noticed that we could cut about
> 5-40% (depending on number of threads) from the total get time in the RPC on
> the server side if we eliminated re-registering for interest ops.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira