hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "jiraposter@reviews.apache.org (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-3899) enhance HBase RPC to support free-ing up server handler threads even if response is not ready
Date Thu, 21 Jul 2011 21:51:00 GMT

    [ https://issues.apache.org/jira/browse/HBASE-3899?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13069230#comment-13069230

jiraposter@reviews.apache.org commented on HBASE-3899:

bq.  On 2011-07-21 21:31:37, Ted Yu wrote:
bq.  > Can you describe the difference between Dhruba's patch and this one ?
bq.  > I assume test suite passed smoothly with this change.

Dhruba's patch added static methods in HBaseServer, which meant that the RPC engine was no
longer pluggable, as noted in this comment: https://issues.apache.org/jira/browse/HBASE-3899?focusedCommentId=13040035&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13040035

This patch adds an interface (Delayable) for delayable remote calls and a new method (getCurrentCall)
in the RpcServer interface, so there is no direct dependecy to HBaseServer.

The test suite passed, but delayed RPCs are not used anywhere in the code yet, I will follow
up with more patches.

- Vlad

This is an automatically generated e-mail. To reply, visit:

On 2011-07-21 20:35:22, Vlad Dogaru wrote:
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/1174/
bq.  -----------------------------------------------------------
bq.  (Updated 2011-07-21 20:35:22)
bq.  Review request for hbase.
bq.  Summary
bq.  -------
bq.  Free up RPC server Handler thread if the called routine specifies the call should be
delayed. The RPC client sees no difference, changes are server-side only. This is based on
the previous submitted patch from Dhruba.
bq.  This addresses bug HBASE-3899.
bq.      https://issues.apache.org/jira/browse/HBASE-3899
bq.  Diffs
bq.  -----
bq.    src/main/java/org/apache/hadoop/hbase/ipc/Delayable.java PRE-CREATION 
bq.    src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 61d3915 
bq.    src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 0da7f9e 
bq.    src/test/java/org/apache/hadoop/hbase/ipc/TestDelayedRpc.java PRE-CREATION 
bq.  Diff: https://reviews.apache.org/r/1174/diff
bq.  Testing
bq.  -------
bq.  Unit tests run. Also, the patch includes a new unit test.
bq.  Thanks,
bq.  Vlad

> enhance HBase RPC to support free-ing up server handler threads even if response is not
> ---------------------------------------------------------------------------------------------
>                 Key: HBASE-3899
>                 URL: https://issues.apache.org/jira/browse/HBASE-3899
>             Project: HBase
>          Issue Type: Improvement
>          Components: ipc
>            Reporter: dhruba borthakur
>            Assignee: dhruba borthakur
>             Fix For: 0.94.0
>         Attachments: asyncRpc.txt, asyncRpc.txt
> In the current implementation, the server handler thread picks up an item from the incoming
callqueue, processes it and then wraps the response as a Writable and sends it back to the
IPC server module. This wastes thread-resources when the thread is blocked for disk IO (transaction
logging, read into block cache, etc).
> It would be nice if we can make the RPC Server Handler threads pick up a call from the
IPC queue, hand it over to the application (e.g. HRegion), the application can queue it to
be processed asynchronously and send a response back to the IPC server module saying that
the response is not ready. The RPC Server Handler thread is now ready to pick up another request
from the incoming callqueue. When the queued call is processed by the application, it indicates
to the IPC module that the response is now ready to be sent back to the client.
> The RPC client continues to experience the same behaviour as before. A RPC client is
synchronous and blocks till the response arrives.
> This RPC enhancement allows us to do very powerful things with the RegionServer. In future,
we can make enhance the RegionServer's threading model to a message-passing model for better
performance. We will not be limited by the number of threads in the RegionServer.

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message