[
https://issues.apache.org/jira/browse/PHOENIX-5601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17033091#comment-17033091
]
Lars Hofhansl commented on PHOENIX-5601:
----------------------------------------
For the record. I am not a fan of this.
Phoenix has all the pieces needed to handle this in a more general way. What we
need to add is this:
# database object attributes. I.e. attributes that we can store in a SYSCAT for
a table or view.
# the row timestamp exposed in Phoenix via SQL. I think there's a ROW_TIMESTAMP
Jira somewhere already.
Then we can avoid showing expired rows by adding where ROW_TIMESTAMP <=
<ttl-time> to any view definition.
And we can clean up expired rows with DELETE FROM ... WHERE ROW_TIMESTAMP >
<ttl-time>.
Let's please do it that way and please revert this change.
To perfectly clear, here's my explicit committer veto for the this change: -1
Until I hear great reasons why the more general approach does not work.
(If DELETE FROM is too slow, let's fix that. If ROW_TIMESTAMP is missing, let's
add that...)
Sorry for being the party pooper. :(
> Add a new Coprocessor - ViewTTLAware Coprocessor
> ------------------------------------------------
>
> Key: PHOENIX-5601
> URL: https://issues.apache.org/jira/browse/PHOENIX-5601
> Project: Phoenix
> Issue Type: Sub-task
> Affects Versions: 4.15.0, 5.1.0
> Reporter: Jacob Isaac
> Assignee: Jacob Isaac
> Priority: Major
> Fix For: 4.16.0
>
> Attachments: PHOENIX-5601.4.x-HBase-1.3.008.patch,
> PHOENIX-5601.master.008.patch
>
>
> * Add a New coprocessor - ViewTTLAware Coprocessor that will intercept
> scan/get requests to inject a new ViewTTLAware scanner.
> The scanner will -
> * Use the row timestamp of the empty column to determine whether row TTL
> has expired and mask the rows from underlying query results.
> * Use the row timestamp to delete expired rows when DELETE_VIEW_TTL_EXPIRED
> flag is present.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)