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

[jira] [Commented] (HBASE-16264) Figure how to deal with endpoints and shaded pb

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

stack commented on HBASE-16264:
-------------------------------

Learnings:

 # We have a few Coprocessor Endpoints (CPEP) in the codebase currently scattered about.
 # Currently CPEP .protos that are in the codebase have their .protos mixed in with all the rest under hbase-protocol. But when we shade, all com.google.protobuf references are relocated. It means that there is a chasm between the client coming in on com.google.protobuf and our relocated org.apache.hadoop.hbase.shaded.com.google.protobuf.* references.
 # I tried to move all CPEP protos and supporting classes into a new hbase-endpoint module, one that does not have shading on it. The thought was that the requests in to Table on com.google.protobuf looking to run a CPEP c.g.p.*Service could travel down through the server as com.google.protobuf.*. Classes that dealt with CPEP had their imports adjusted to NOT be shaded references to protobuf.
# I got pretty far but have now run into a wall. CPEP .protos, unfortunately, are not standalone; if they were, the above tactic would 'work'. What I mean by their not being standalone is that CPEPs will reference back into base HBase .protos so they can do Mutations and Results; e.g. MultiRowMutationProcessor imports Client.proto. But the contents of Client.proto will have been shaded and MultiRowMutationProcessor classes will not have been. The latter will be trying to pass to com.google.protobuf.* Types to the former Cilent.proto classes as params, etc., but since the Client.proto classes have been relocated, they are expecting o.h.h.shaded.c.g.p.* Types. I've run into the chasm again. Not sure how to bridge it.

> Figure how to deal with endpoints and shaded pb
> -----------------------------------------------
>
>                 Key: HBASE-16264
>                 URL: https://issues.apache.org/jira/browse/HBASE-16264
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors, Protobufs
>            Reporter: stack
>            Assignee: stack
>
> Come up w/ a migration plan for coprocessor endpoints when our pb is shaded. Would be sweet if could make it so all just worked. At worst, come up w/ a prescription for how to migrate existing CPs.



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