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

Ben West commented on HBASE-5600:
---------------------------------

I'm not entirely sure how to accomplish this in full generality. The most 
obvious methods would involve sending java code through thrift, which is 
probably a no-go. However, here is one simple coprocessor which I have that it 
seems could be handled:

{code}
Batch.Call call = Batch.forMethod(IMyEndpoint.class, "getRow", 
rowKey.getBytes());
Map<byte[], byte[]> results = table.coprocessorExec(IMyEndpoint.class, null, 
null, call);
{code}

We could create a thrift method to take the name of the class, method, and an 
array of params and then call coprocessorExec. If this sounds reasonable, I can 
try to allocate some time for a patch.

Alternatively, we could just require that you write a client for your 
endpoints, and then thrift calls the client.
                
> Make Endpoint Coprocessors Available from Thrift
> ------------------------------------------------
>
>                 Key: HBASE-5600
>                 URL: https://issues.apache.org/jira/browse/HBASE-5600
>             Project: HBase
>          Issue Type: Improvement
>          Components: thrift
>            Reporter: Ben West
>            Priority: Minor
>              Labels: thrift
>
> Currently, the only way to access an endpoint coprocessor via thrift is to 
> modify the schema and Thrift server for every coprocessor function. This is 
> annoying. It should be possible to use your coprocessors without having to 
> mangle HBase core code (since that's the point of coprocessors).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to