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

Jurriaan Mous commented on HBASE-13902:
---------------------------------------

{quote}
How can we get away with removing such fundamental types as Call and 
RpcClientImpl Want to say a few words on it Jurriaan Mous ?

The plus is now we have an async chassis and so can do an async Table – that is 
great – and do we get a simplification of the client path but can you think of 
any downsides? For example, doing sync calls on an async chassis continue to be 
slower than pure sync (I'd guess so but probably not by much?). I could help 
test this out if that'd help. Any other downsides you can think of ?
{quote}

Luckily Call and RpcClientImpl are private and are only accessed through the 
RpcClient interface. So it is easy to remove them. :)

I looked into it a bit more. It is technically possible to keep supporting the 
RpcClientImpl by adding a Netty EventLoop to the RpcClientImpl and make an 
abstraction around the async channel. To properly support the Async Table I 
needed to make scans use the async client internally so these will probably get 
slower with the Async patch in RpcClientImpl and faster with AsyncRpcClient 
because of transferred abstraction. And it is possible that the async based 
sync Table implementation removes some of the delay.

Maybe the best way is to keep RpcClientImpl in at this moment, implement the 
async methods and remove it later if it proves to be slower with all the new 
code in.

> Remove Sync RpcClientImpl
> -------------------------
>
>                 Key: HBASE-13902
>                 URL: https://issues.apache.org/jira/browse/HBASE-13902
>             Project: HBase
>          Issue Type: Improvement
>          Components: Client
>            Reporter: Jurriaan Mous
>            Assignee: Jurriaan Mous
>         Attachments: HBASE-13902.patch
>
>
> For an async Table api to be supported we need to remove the sync 
> RpcClientImpl. 
> For the Async Table Api some internals for scanning are changed to use async 
> apis so they can't be used with the Sync RpcClientImpl.



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

Reply via email to