[
https://issues.apache.org/jira/browse/PHOENIX-6298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Viraj Jasani reassigned PHOENIX-6298:
-------------------------------------
Assignee: Viraj Jasani
> Use timestamp of PENDING_DISABLE_COUNT to calculate elapse time for
> PENDING_DISABLE state
> -----------------------------------------------------------------------------------------
>
> Key: PHOENIX-6298
> URL: https://issues.apache.org/jira/browse/PHOENIX-6298
> Project: Phoenix
> Issue Type: Bug
> Reporter: Ankit Singhal
> Assignee: Viraj Jasani
> Priority: Major
>
> Instead of taking indexDisableTimestamp to calculate the elapsed time, we
> should be considering the last time we incr/decremented the counter for
> PENDING_DISABLE_COUNT. as if the application writes failures span more than
> the default threshold of 30 seconds, the index will unnecessarily get
> disabled even though the client could have retried and made it active.
> {code}
> long elapsedSinceDisable =
> EnvironmentEdgeManager.currentTimeMillis() - Math.abs(indexDisableTimestamp);
> // on an index write failure, the server side transitions to PENDING_DISABLE,
> then the client
> // retries, and after retries are exhausted, disables the
> index
> if (indexState == PIndexState.PENDING_DISABLE) {
> if (elapsedSinceDisable > pendingDisableThreshold) {
> // too long in PENDING_DISABLE - client didn't
> disable the index, so we do it here
> IndexUtil.updateIndexState(conn,
> indexTableFullName, PIndexState.DISABLE, indexDisableTimestamp);
> }
> continue;
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)