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

Jacob Isaac updated PHOENIX-6978:
---------------------------------
    Description: 
With Phoenix TTL for views (PHOENIX-3725), the basic gist was the TTL should be 
a Phoenix view level setting instead of being at the table level as implemented 
in HBase. More details on the old design are here ([Phoenix TTL old design 
doc|https://docs.google.com/document/d/1aZWhJQCARBVt9VIXNgINCB8O0fk2GucxXeu7472SVL8/edit#heading=h.kpf13qig3vdl]).

Both HBase TTL and Phoenix TTL rely on applying expiration logic during the 
scanning phase when serving query results and apply deletion logic when pruning 
the rows from the store. In HBase, the pruning is achieved during the 
compaction phase.

The initial design and implementation of Phoenix TTL for views used the MR 
framework to run delete jobs to prune away the expired rows. We knew this was a 
sub-optimal solution since it required managing and monitoring MR jobs. It 
would also have introduced additional delete markers which would have 
temporarily added more rows (delete markers) have made the scans less 
performant.

Using the HBase compaction framework instead to prune away the expired rows 
would fit nicely into the existing architecture and would be efficient like 
pruning the HBase TTL rows. 

This jira proposes a redesign of Phoenix TTL for Views using PHOENIX-6888 and 
PHOENIX-4555

[New Design 
doc|https://docs.google.com/document/d/1D2B0G_sVe9eE66bk-sxUfSgoGtQCvD7xBZRxZz-Q1TM/edit]

  was:
With Phoenix TTL for views (PHOENIX-3725), the basic gist was the TTL should be 
a Phoenix view level setting instead of being at the table level as implemented 
in HBase. More details on the old design are here ([Phoenix TTL design 
doc|https://docs.google.com/document/d/1aZWhJQCARBVt9VIXNgINCB8O0fk2GucxXeu7472SVL8/edit#heading=h.kpf13qig3vdl]).

Both HBase TTL and Phoenix TTL rely on applying expiration logic during the 
scanning phase when serving query results and apply deletion logic when pruning 
the rows from the store. In HBase, the pruning is achieved during the 
compaction phase.

The initial design and implementation of Phoenix TTL for views used the MR 
framework to run delete jobs to prune away the expired rows. We knew this was a 
sub-optimal solution since it required managing and monitoring MR jobs. It 
would also have introduced additional delete markers which would have 
temporarily added more rows (delete markers) have made the scans less 
performant.

Using the HBase compaction framework instead to prune away the expired rows 
would fit nicely into the existing architecture and would be efficient like 
pruning the HBase TTL rows. 

This jira proposes a redesign of Phoenix TTL for Views using PHOENIX-6888 and 
PHOENIX-4555


> Redesign Phoenix TTL for Views
> ------------------------------
>
>                 Key: PHOENIX-6978
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-6978
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Jacob Isaac
>            Assignee: Lokesh Khurana
>            Priority: Major
>
> With Phoenix TTL for views (PHOENIX-3725), the basic gist was the TTL should 
> be a Phoenix view level setting instead of being at the table level as 
> implemented in HBase. More details on the old design are here ([Phoenix TTL 
> old design 
> doc|https://docs.google.com/document/d/1aZWhJQCARBVt9VIXNgINCB8O0fk2GucxXeu7472SVL8/edit#heading=h.kpf13qig3vdl]).
> Both HBase TTL and Phoenix TTL rely on applying expiration logic during the 
> scanning phase when serving query results and apply deletion logic when 
> pruning the rows from the store. In HBase, the pruning is achieved during the 
> compaction phase.
> The initial design and implementation of Phoenix TTL for views used the MR 
> framework to run delete jobs to prune away the expired rows. We knew this was 
> a sub-optimal solution since it required managing and monitoring MR jobs. It 
> would also have introduced additional delete markers which would have 
> temporarily added more rows (delete markers) have made the scans less 
> performant.
> Using the HBase compaction framework instead to prune away the expired rows 
> would fit nicely into the existing architecture and would be efficient like 
> pruning the HBase TTL rows. 
> This jira proposes a redesign of Phoenix TTL for Views using PHOENIX-6888 and 
> PHOENIX-4555
> [New Design 
> doc|https://docs.google.com/document/d/1D2B0G_sVe9eE66bk-sxUfSgoGtQCvD7xBZRxZz-Q1TM/edit]



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

Reply via email to