hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Devaraj Das (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-6787) Convert RowProcessorProtocol to protocol buffer service
Date Fri, 19 Oct 2012 19:01:11 GMT

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

Devaraj Das commented on HBASE-6787:

bq. This ability to add arbitrary bytes? If so, does it have to part of the general RowProcessor?
Can it not be specific to aggregating CP? Just wondering.

Maybe, I shouldn't have mixed up the small fixes with this patch. Yes, this code belongs purely
to Aggregating CP and while doing this patch I noticed an obvious optimization that I could
do (create one ByteString object instead of two)... Should I raise a separate jira for the
two unrelated changes (this one and there is another to do with Javadoc in ColumnInterpreter.java),
or is it okay to leave them as part of this patch.

bq. I ain't sure whats going on in RowProcessorClient. It has a method getRowProcessorPB that
takes and returns generics of RowProcessorArgument? I don't follow what is going on.

This method just converts the passed RowProcessor<T> to a PB so that it can be serialized
when the RowProcessorEndpoint CP Service is invoked and that's all. The first <T> that
is there in the method signature to take care of Java generics syntax since the argument needs
to have the generics type <T> (without the first <T> the thing won't compile...).

bq. In BaseRowProcessorEndpoint#process, we take a RowProcessorArgument. Should that be a
RowProcessorRequest? (Ditto here constructRowProcessorFromRequest(RowProcessorArgument request))

Yeah it could be.. will rename. 

bq. What is getProtoForResultType that takes a Result? Why ResultType in the method name?

This is used at the server side. This converts the received result instance (of type T) to
PB (so that the CP framework can serialize it over the wire to the client). I guess I should
remove the 'Type' string from the method name.

bq. The initialize taking 'bytes' drops typing, ability to extend (unless these arbitrary
bytes are serialized pb themselves)

Yes, as I said in my previous jira comment, the CP endpoint framework is agnostic to the actual
application types.

bq. When would there be different result types? (looking at getProtoForResultType in the Interface)
And it returns serialized pb?

For different implementations of RowProcessor interface, the types could be different. [I'll
remove the 'Type' from the method name - that's confusing things it seems.]

bq. So result of the CP is arbitrary bytes for the client to interpret? Can it not be a pb?

Ditto as my previous jira comment. 

bq. Sorry if my comments above are clueless for I am when it comes to these endpoint CPs.

That's okay, [~stack]. Those were good questions.
> Convert RowProcessorProtocol to protocol buffer service
> -------------------------------------------------------
>                 Key: HBASE-6787
>                 URL: https://issues.apache.org/jira/browse/HBASE-6787
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors
>            Reporter: Gary Helmling
>            Assignee: Devaraj Das
>             Fix For: 0.96.0
>         Attachments: 6787-1.patch
> With coprocessor endpoints now exposed as protobuf defined services, we should convert
over all of our built-in endpoints to PB services.

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

View raw message