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

ryan rawson commented on HBASE-2408:
------------------------------------

one thing we might have to do here is to add in the concurrency control 
numbers, if a client is scanning a row in multiple calls, normally this might 
be reset.

i like the idea of using optional fields in avro to carry this along. it should 
be in-band, since it is an in-band message, although maybe only advisory.

> Add envelope around client<->server communication so can pass state along w/ 
> data during interchange
> ----------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-2408
>                 URL: https://issues.apache.org/jira/browse/HBASE-2408
>             Project: Hadoop HBase
>          Issue Type: Improvement
>            Reporter: stack
>
> This issue is about adding a dimension along which we can pass metadata on 
> changes in client-server communications.  What i mean by this is that that 
> while an HTable#get will return a RowResult, we need to also be able to also 
> convey, messages like "I got the result for this row from a region other than 
> the one you asked for -- update your cache with this new location".
> I can think of two examples where this mechanism could be useful.
> 1. HBASE-72 "'Normal' operation should not depend on throwing of exceptions 
> (e.g. NotServingRegionException)".  Rather than have the server throw a 
> NotServingRegionException as we do now as signal to client to go look 
> elsewhere for the wanted data, we could instead signal the client to look 
> elsewhere by setting a state in the envelope.
> 2. If a client asks for a row and meantime the region has split, if the 
> regionserver queried is hosting the daughter that is carrying the wanted row, 
> it could save the client hops by passing back the wanted row with a message 
> in the envelope that client should update its cache removing parent and 
> replacing with daughter location.
> AVRO rpc carries headers?  We could stuff our enveloping stuff there?  Or, 
> shudder, if we used AVRO HTTP for RPC, we could do our messages as HTTP 
> headers.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to