Sanjeet Malhotra created PHOENIX-7347:
-----------------------------------------

             Summary: Use most up-to-date value Table level max lookback from 
SYSCAT during flush
                 Key: PHOENIX-7347
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7347
             Project: Phoenix
          Issue Type: Improvement
    Affects Versions: 5.3.0
            Reporter: Sanjeet Malhotra
            Assignee: Sanjeet Malhotra


Currently to avoid fetching table level max lookback from SYSCAT while doing 
flush (in preFlush hook) we use a cached value. The value of table level max 
lookback is cached when compactions (minor and major both) are triggered. And, 
that cached value is used in preFlush hook but it also means:
 # We won't start preserving rows as soon as max lookback is altered so making 
it very slow eventually consistent.
 # Table level max lookback for a table and index can go out of sync for good 
amount of time.

The reason we use cached max lookback value in preFlush but use latest value in 
preCompact is: preFlush and in turn flush, can be called when cluster teardowns 
and it gives an impression that ITs (e.g. SystemTablesCreationOnConnectionIT.
testDoNotUpgradePropSet()) got stuck while following is happening under the 
hood: # We try to create Phoenix connection.
 # As part of creating Phoenix connection, get call is made to hbase:meta to 
check table state of SYSCAT.
 # The get call is rejected as mini cluster is tearing down. Get call has a 
check to see if RS is stopping (via checkOpen()).
 # As Phoenix connection fails and HBase client uses RPCRetryingCaller so, it 
keeps retrying until all attempts get exhausted.
 # Once all attempts are exhausted exception is thrown back to caller code in 
Phoenix.

Once exception is thrown back to Phoenix caller we can flush complete data as 
in production, attempt to fetch max lookback from SYSCAT will fail only if 
SYCAT is offline or all RS goes down on which SYSCAT can be hosted. In such 
extreme scenario flushing some extra data is not an issue given minor/major 
compactions will take care of removing excess data outside max lookback window.



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

Reply via email to