phoenix
phoenix copied to clipboard
PHOENIX-7166 : Set default values of feature flags introduced by metadata caching redesign
Set the following config values
- phoenix.metadata.invalidate.cache.enabled = true
- phoenix.ddl.timestamp.validation.enabled = true
- phoenix.default.update.cache.frequency = Long.MAX_VALUE (NEVER)
Changes
- Some places in code assume default UCF is 0 or 0L is hardcoded - replace that with default UCF property.
- Tests which use
ConnectionlessQueryServicesImpl-BaseConnectionlessQueryTest, its extensions andParallelPhoenixConnectionFailureTest- This CQS implementation is used where no connection to hbase cluster is necessary. For such tests, we will not be able to make an admin call to get a list of region servers. Hence, we will keep the feature off for such tests.
-
UpdateCacheITandUpdateCacheConnectionLevelPropIT- These classes have tests to verify client side cache updates and UCF functionality. PHOENIX-6883 redesigns metadata caching for both client and server. Some tests needed change in expected number of RPC calls.
- Some queries like
SELECT NEXT VALUE FOR SEQUENCEdo not need timestamp validation.- Filter out table types when validating last_ddl_timestamps - only do it for (system&user)tables/views/indexes.
- Creating an index on a table with the same client leads to an update of only the timestamp (not last_ddl_timestamp) in client cache and not the PTable object.
- Client is not able to refresh its cache on subsequent queries because the reference in its cache has the latest timestamp so server does not send the latest PTable object.
- One way to fix this - when we get a StaleMetadataCacheException, remove the entity in client cache and then force update.
- Creating a view on a table with the same client increases the sequence number of the table on the server but client does not see it. Altering the table with the same connection leads to a ConcurrentMutationException.
- Update cache in retry when dropping column.
- Inherited View Index does not exist in SYSCAT so validating last_ddl_ts for them leads to TNFE.
- Parse out the index name from the modified index name.