phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ankit Singhal (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PHOENIX-4224) Automatic resending cache for HashJoin doesn't work when cache has expired on server side
Date Sat, 23 Sep 2017 11:20:00 GMT

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

Ankit Singhal commented on PHOENIX-4224:
----------------------------------------

yep, PHOENIX-4010 was not expected to take care of this case because we expect the user to
increase expiry time of the cache if they see such errors.

The purpose of this snippet is to send hash cache to the regionserver(who has never received
cache) only once even if many scans belonging to it fail. once the cache has been sent, we
will retry all the failed scans of that regionserver. 

{code}
if (cache.addServer(tableRegionLocation) ... )) {
				success = addServerCache(table, startkeyOfRegion, pTable, cacheId, cache.getCachePtr(),
cacheFactory, txState);
			}
{code}

The code should eventually come out from recursion after configured no. of retries. Are you
saying it's not happening or recursion propagating failure slow?


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

Mime
View raw message