hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jurriaan Mous (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-13902) Remove Sync RpcClientImpl
Date Tue, 16 Jun 2015 09:34:00 GMT

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

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 ?

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

View raw message