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

Reply via email to