[ https://issues.apache.org/jira/browse/PHOENIX-6298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Viraj Jasani updated PHOENIX-6298: ---------------------------------- Affects Version/s: 5.0.0 4.15.0 > 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 > Affects Versions: 5.0.0, 4.15.0 > 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)