[
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