[
https://issues.apache.org/jira/browse/PHOENIX-4224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16181078#comment-16181078
]
Josh Elser commented on PHOENIX-4224:
-------------------------------------
Some unit tests for the new methods added to {{ServerCache}} would be awesome.
{noformat}
+ for(HRegionLocation loc : servers) {
+ this.servers.put(loc, System.currentTimeMillis());
+ }
{noformat}
Call {{System.currentTimeMillis()}} once and add it for all servers. This will
unnecessarily slow for large clusters.
+1 with a new unit test or two.
> Automatic resending cache for HashJoin doesn't work when cache has expired on
> server side
> ------------------------------------------------------------------------------------------
>
> Key: PHOENIX-4224
> URL: https://issues.apache.org/jira/browse/PHOENIX-4224
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.12.0
> Reporter: Sergey Soldatov
> Assignee: Sergey Soldatov
> Priority: Blocker
> Fix For: 4.12.0
>
> Attachments: PHOENIX-4224-1.patch
>
>
> The problem occurs when the cache has expired on server side and client want
> to resend it. This problem has been introduced in PHOENIX-4010. Actual result
> in this case is that client doesn't send the cache because of the following
> check:
> {noformat}
> if (cache.addServer(tableRegionLocation) ... )) {
> success = addServerCache(table,
> startkeyOfRegion, pTable, cacheId, cache.getCachePtr(), cacheFactory,
> txState);
> }
> {noformat}
> Since the region location hasn't been changed, we actually don't send cache
> again, but produce new scanner which will fail with the same error and client
> will fall to recursion.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)