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

Nicolas Liochon commented on HBASE-10701:
-----------------------------------------

bq. So locateRegionInMeta() call MIGHT return HRL
Hum, then we can have an issue here I think

{code}
  private RegionLocations findDestLocation(
      TableName tableName, Row row, boolean checkPrimary) throws IOException {
    if (row == null) throw new IllegalArgumentException("#" + id + ", row 
cannot be null");
    RegionLocations loc = hConnection.locateRegionAll(tableName, row.getRow());
    if (loc == null
        || (checkPrimary && (loc.isEmpty()
        || loc.getDefaultRegionLocation() == null
        || loc.getDefaultRegionLocation().getServerName() == null))) {
      throw new IOException("#" + id + ", no location found, aborting submit 
for" +
          " tableName=" + tableName + " rowkey=" + 
Arrays.toString(row.getRow()));
    }
    return loc;
  }
{code}

The cache might return something with a null server name, w/o retrying to go to 
meta. The caller will get the exception, and will think "after a lot of retry 
we can't get the location, so we're bad, so we stop"
I'm not totally sure I'm right, because we're not looking for the secondary 
replicas here.

bq. It is inside a while loop.
Not the first one for the main replica :-)

bq. But you agree with the RetriesExhausted to be tried on every server no 
matter what, right ? 
It so extreme that I don't really know. I suppose that whatever you do it's 
going to be difficult at the end :-). I'm +1 whatever the final choice here.

> Cache invalidation improvements from client side
> ------------------------------------------------
>
>                 Key: HBASE-10701
>                 URL: https://issues.apache.org/jira/browse/HBASE-10701
>             Project: HBase
>          Issue Type: Sub-task
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: hbase-10070
>
>         Attachments: hbase-10701_v1.patch, hbase-10701_v2.patch
>
>
> Running the integration test in HBASE-10572, and HBASE-10355, it seems that 
> we need some changes for cache invalidation of meta entries from the client 
> side in backup RPCs. 
> Mainly the RPC's made for replicas should not invalidate the cache for all 
> the replicas (for example on RegionMovedException, connection error etc). 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to