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

stack commented on HBASE-7477:
------------------------------

[~karthik.ranga] Mighty Karthik.  Patch looks legit.  Its radical writing it 
all out by hand but this by-hand is going on anyways just in different places 
through the code.  So why mess about w/ this Proxy stuff?  Trying to think of 
downsides but its only the same serialization issues you'd have with or without 
proxying (only it'll be clearer what is going on when proxy is removed).

I'm going to mark this a 0.89 issue if that is ok w/ you.  I'm going to open a 
new issue for turn proxy removing.  We have diverged too much; we don't have 
Writables any more and our 'protocols' have all different signatures from you 
(we don't have versioning nor protocol signature either as of a few days ago).  
Also, rather than have to hand code the protocol serialization/deserialization, 
we have the option of just exploiting the code generated by pb Service.

Our big take away from this issue is that the proxying has a cost.  A few of us 
digging in rpc of late have been questioning the need for proxy at all.  That 
it has a cost too becomes another mark against it.  We'll look into removing it 
in trunk too over in another trunk-focused issue.

Good on you boss.

Hint, Gary Helmling has found that the caching of clients is useless code, 
HBASE-7460.  You might want to cut this out too while you have your butcher's 
apron on.
                
> Remove Proxy instance from HBase RPC
> ------------------------------------
>
>                 Key: HBASE-7477
>                 URL: https://issues.apache.org/jira/browse/HBASE-7477
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Karthik Ranganathan
>         Attachments: 7477experiment.txt, HBASE-7477.patch
>
>
> Currently, we use HBaseRPC.getProxy() to get an Invoker object to serialize 
> the RPC parameters. This is pretty inefficient as it uses reflection to 
> lookup the current method name.
> The aim is to break up the proxy into an actual proxy implementation so that:
> 1. we can make it more efficient by eliminating reflection
> 2. can re-write some parts of the protocol to make it even better

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to