Chinmay Kulkarni commented on PHOENIX-3955:

[~jamestaylor] [~tdsilva] [~gjacoby] In the upgrade path, I guess we would have 
to do 2 things then: For every table, make sure these properties are in sync 
amongst all column families; and ensure these properties are in sync for each 
index table. In the first case, I guess we can use the default CF as the source 
of truth.

What about the case where a table is created with an old phoenix client and so 
these properties have different values amongst its own column families, and we 
then try to create an index on this table with a new phoenix client? Since the 
base table's properties are out of sync amongst its own CFs, we won't know 
which properties to inherit during index creation. One solution is to force an 
entire upgrade/throw an UpgradeRequiredException, but "EXECUTE UPGRADE" does a 
lot of other stuff which we don't require at this point.

Is it worth the effort to introduce some new command like "SYNC TABLE <table 
name> <column family name>" which syncs these properties amongst all its column 
families and also all the indexes of that table?

> Ensure KEEP_DELETED_CELLS, REPLICATION_SCOPE, and TTL properties stay in sync 
> between the physical data table and index tables
> ------------------------------------------------------------------------------------------------------------------------------
>                 Key: PHOENIX-3955
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3955
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: Samarth Jain
>            Assignee: Chinmay Kulkarni
>            Priority: Major
> We need to make sure that indexes inherit the REPLICATION_SCOPE, 
> KEEP_DELETED_CELLS and TTL properties from the base table. Otherwise we can 
> run into situations where the data was removed (or not removed) from the data 
> table but was removed (or not removed) from the index. Or vice-versa. We also 
> need to make sure that any ALTER TABLE SET TTL or ALTER TABLE SET 
> KEEP_DELETED_CELLS statements propagate the properties to the indexes too.

This message was sent by Atlassian JIRA

Reply via email to