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

stack commented on HBASE-12597:
-------------------------------

Sweet [~jurmous]

You refer to HConnectionImplementation (and in your code to HConnection). Is 
that because you have been working off 0.94 or 0.98 rather than branch-1 or 
master branches?  In master branch, there is a bunch of cleanup and now we have 
a Connection Interface.  Perhaps you've noticed that and your reference to HCI 
is just because this is still the Implementation? 

Your project looks great (Can you call your client HBaseClient rather than 
HbaseClient?)  How does it relate to asynchbase if it atll?  Its more 
derivative of native hbase client than asynchbase is?

I see you pass in our configs. Do they work for your async context. I would not 
be afraid introducing new ones if it makes your implementation easier... ours 
have been around a long time and have been overloaded and their original intent 
may have been lost over time.  Just FYI.

Thats great you carried over codecs. Maybe in netty context, we can drop these 
and use netty channel compression instead? (won't work for sasl I suppose but 
for everything else).

Hmm... you support nonce too? If so, thats great.








> Add RpcClient interface and enable changing of RpcClient implementation
> -----------------------------------------------------------------------
>
>                 Key: HBASE-12597
>                 URL: https://issues.apache.org/jira/browse/HBASE-12597
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>            Reporter: Jurriaan Mous
>
> Currently HConnectionImplementation works with the included RpcClient which 
> is a direct implementation and not defined by an interface.
> It would be great to be able to swap out the default RpcClient with another 
> implementation which can also be controlled by the default 
> HConnectionImplementation. 
> Suggested changes:
> - Create a RpcClient interface which defines all the ways 
> HConnectionImplementation interacts with an RPC client. Like getting a 
> blocking protobuf service interface or closing the client.
> - Define which RpcClient implementation to construct by setting a 
> configuration variable which defaults to the current RpcClient.
> - Possibly create an abstract RpcClient class to only load all the basic Rpc 
> layer configurations to be used in an implementation.
> Why? It enables experimentation with RpcClients which could enable new 
> features or could be more performant than the included client. 
> I created a new RpcClient implementation based on Netty which can also be 
> called asynchronously. It would be great to also be able to use this 
> RpcClient in all the default ways and tests to see if there are any issues 
> with it. 
> https://github.com/jurmous/async-hbase-client/
> https://github.com/jurmous/async-hbase-client/blob/master/src/main/java/org/apache/hadoop/hbase/ipc/AsyncRpcClient.java



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to