[ 
https://issues.apache.org/jira/browse/PHOENIX-7347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sanjeet Malhotra resolved PHOENIX-7347.
---------------------------------------
    Resolution: Not A Problem

Not needed after PHOENIX-7587

> 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
>            Priority: Minor
>
> 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