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