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

Jurriaan Mous commented on HBASE-16433:
---------------------------------------

With the protobuf service abstraction we are doing more  object creation each 
time we do a call. We want in our async calls to expose a CompletableFuture, 
for which the request needs to be converted to a PayloadCarryingRpcController 
and a callback, which needs to be converted to a kind of Promise within the 
Netty RPC layer. With the other route without Protobuf services we can pass a 
CompletableFuture from back to front without passing any implementation details 
about Netty (or possible future grpc implementation). 

The Descriptors.MethodDescriptor in the AsyncRpcChannel is indeed not nice but 
we can abstract that away with an Enum/ a class which contains the generated 
MDs.

I would much rather prefer that we abstract the whole protobuf services away 
and make all our client/table implementations immune to change to FE grpc than 
to leak protobuf services everywhere. A simple method that inputs anything our 
client needs and outputs a CompletableFuture seems to be much more change 
proof. Then we can slowly phase out anything Protobuf service related and we 
have more performant Clients because there is less conversion/object creation 
tax.

> Remove AsyncRpcChannel related stuffs
> -------------------------------------
>
>                 Key: HBASE-16433
>                 URL: https://issues.apache.org/jira/browse/HBASE-16433
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>             Fix For: 2.0.0
>
>         Attachments: HBASE-16433.patch
>
>
> AsyncRpcChannel can not be used by protobuf stub. We should implement the 
> async logic along with the RpcChannel interface of protobuf.



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

Reply via email to