Palash Chauhan created PHOENIX-7293:
---------------------------------------

             Summary: Create separate update cache frequency config for Indexes 
in PENDING_DISABLE state
                 Key: PHOENIX-7293
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7293
             Project: Phoenix
          Issue Type: Sub-task
            Reporter: Palash Chauhan
            Assignee: Palash Chauhan


* If an index has been in PENDING_DISABLE state for too long, it is considered 
disabled. [QueryOptimizer 
|https://github.com/apache/phoenix/blob/master/phoenix-core-client/src/main/java/org/apache/phoenix/optimize/QueryOptimizer.java#L508-L510]makes
 that decision based on current server timestamp, indexDisableTimestamp and the 
threshold value. Current server time is retrieved via a getTable RPC when the 
[ColumnResolver 
|https://github.com/apache/phoenix/blob/master/phoenix-core-client/src/main/java/org/apache/phoenix/optimize/QueryOptimizer.java#L347]creates
 a TableRef for the entity in the query plan.
 * If UPDATE_CACHE_FREQUENCY is set to NEVER, we will no longer do the getTable 
RPC, use the PTable in the client's cache to create the TableRef and use {{-1}} 
as the current time 
([code|https://github.com/apache/phoenix/blob/master/phoenix-core-client/src/main/java/org/apache/phoenix/schema/MetaDataClient.java#L625-L629]).
 This means the index will always be under threshold till the client refreshes 
its cache and will be considered by the optimizer. 

Create a separate UCF config value for indexes in PENDING_DISABLE state and set 
it to ALWAYS. Use this new config when deciding whether to go to the server to 
fetch the latest ptable. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to