[
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)