You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Elliott Clark (JIRA)" <ji...@apache.org> on 2012/06/30 01:24:44 UTC

[jira] [Updated] (HBASE-2182) rpc/ipc refactor; x-version compatibility, nio, async, enveloping, sane timeouts, etc.

     [ https://issues.apache.org/jira/browse/HBASE-2182?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Elliott Clark updated HBASE-2182:
---------------------------------

    Attachment: HBASE-2182-EARLY-0.patch

So I took an early stab at this.  It uses netty for both server and client.  A region server has two different ports (right now).  One for admin and one for data with a protobuf representation.  All servers have a thread pool for IO (getting data in and out, parsing protobuf) and a thread pool for performing operations (Scanning, getting, deleting, etc).  Thread pools are memory aware so slow queries shouldn't result in OOME's.

All communication takes place through a wrapped protocol buffer protocol:
[32 bit length field, protobuf data]

This is pretty easy to parse and should allow native clients to be written very easily.


All dependencies are injected into the constructor of NRegionServer and NMasterServer.  This should allow us to test things a little bit easier.  I had to make a couple of changes to the Zookeeper listeners for this.

I envision the client having two implementations. The async client that just gives off futures like https://github.com/stumbleupon/asynchbase does currently.  The second implementation will just be a wrapper for the async client that waits for all futures to complete before returning.


Right now nothing works and nothing is really even close.  I just wanted to put this up to get the ball rolling on discussion and see if people are even interested in this still.
                
> rpc/ipc refactor; x-version compatibility, nio, async, enveloping, sane timeouts, etc.
> --------------------------------------------------------------------------------------
>
>                 Key: HBASE-2182
>                 URL: https://issues.apache.org/jira/browse/HBASE-2182
>             Project: HBase
>          Issue Type: Umbrella
>          Components: ipc, performance
>            Reporter: Andrew Purtell
>            Assignee: ryan rawson
>         Attachments: HBASE-2182-EARLY-0.patch
>
>
> Reimplement HBase RPC with an NIO framework. 

--
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