[ 
https://issues.apache.org/jira/browse/HBASE-2408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Purtell resolved HBASE-2408.
-----------------------------------
    Resolution: Incomplete

> 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: 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 was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to