Palash Chauhan created PHOENIX-7753:
---------------------------------------

             Summary: Allow uncovered index creation on tables with relaxed 
conditional TTL
                 Key: PHOENIX-7753
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7753
             Project: Phoenix
          Issue Type: Improvement
    Affects Versions: 5.3.0
            Reporter: Palash Chauhan
            Assignee: Palash Chauhan
             Fix For: 5.4.0, 5.3.1


Phoenix prevents creating an uncovered global secondary index on a table that 
has conditional TTL defined. When attempting to create the index, Phoenix 
validates that the TTL expression can be evaluated on a row from the index 
table, which fails because uncovered indexes only contain key columns, not 
necessarily the data columns referenced in the TTL expression. 

PHOENIX-7667 introduced relaxed TTL semantics where an expired row is not 
masked immediately, rather it relies on major compaction to purge the row. When 
a table has relaxed conditional TTL defined, we should allow the creation of 
uncovered index on it without any TTL on the index table.  

Once a data table row expires, its corresponding uncovered index row will 
become an orphan and will not be returned in a scan on the uncovered index. 
Uncovered indexes have a smaller footprint since they only store keys so there 
should not be a storage bloat. These orphan index rows can be deleted either 
during read repair once they are old enough or through a background 
index-to-data verification process.



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

Reply via email to