You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Duo Zhang (JIRA)" <ji...@apache.org> on 2016/08/18 01:57:20 UTC

[jira] [Commented] (HBASE-16432) Revisit the asynchronous ipc implementation

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

Duo Zhang commented on HBASE-16432:
-----------------------------------

My plan is to do this with 3 steps

1. Cut off the relationship between AsyncTable and Netty. We could implement the AsyncTable with protobuf async stub. After this the development of AsyncTable could continue since the async stub is already supported by the current AsyncRpcClient.

2. Add RpcChannel support for RpcClientImpl. The current implementation is wrong... We schedule a blocking task into the global event loop, this may block others as it is 'global'...At this time, the AsyncTable can run on both RpcClientImpl and AsyncRpcClient.

3. Do some refactoring on AbstractRpcClient and reimplement the AsyncRpcClient.

Thanks.

> Revisit the asynchronous ipc implementation
> -------------------------------------------
>
>                 Key: HBASE-16432
>                 URL: https://issues.apache.org/jira/browse/HBASE-16432
>             Project: HBase
>          Issue Type: Umbrella
>            Reporter: Duo Zhang
>
> Seems the current approach of implementing AsyncTable is in trouble as we expose some netty classes in our public interfaces.
> I agree that we should not do this. The AsyncTable should be implemented using the asynchronous protobuf stub, and we could use CompletableFuture or Deferred instead of netty's Future. I think the problem of netty's future is that it is tighten with netty's executor. This makes it impossible to use without netty.



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