[ 
https://issues.apache.org/jira/browse/HBASE-10823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13967090#comment-13967090
 ] 

Andrew Purtell edited comment on HBASE-10823 at 4/11/14 9:17 PM:
-----------------------------------------------------------------

bq. With considering the last cell's TS...!! 

No that's not it. We issue one Get to find the covered cells, and we want to 
put a timerange on it. Timerange does not allow discontinuities, and gets do 
not allow a timerange per family or family:qualifer. So we find the latest 
timestamp either specified by the op or one of the cells therein and go with 
that. I think that is fine for now. We may have to resort to a custom filter 
ultimately. 

We have to make a decision about the entire Delete op, minimizing overheads 
incurred while doing so. As long as we are not allowing something we shouldn't, 
any usability issues that come up because we find more cells than are truly 
covered by a tombstone, are mitigated by the client still being able to 
structure the deletes they want to accomplish in separate operations. So unless 
objection I am going to commit this patch as better than what we have now, 
unless you are thinking of a logic bug that allows something we shouldn't. Then 
let's look at a test case for that. 


was (Author: apurtell):
bq. With considering the last cell's TS...!! 

No that's not it. We issue one Get to find the covered cells, and we want to 
put a timerange on it. Timerange does not allow discontinuities, and gets do 
not allow a timerange per family or family:qualifer. So we find the latest 
timestamp either specified by the op or one of the cells therein and go with 
that. I think that is fine for now. We may have to resort to a custom filter 
ultimately. 

We are making a decision about the entire Delete op, and as long as we are not 
allowing something we shouldn't, any usability concerns are mitigated by just 
issuing multiple Deletes separately. So unless objection I am going to commit 
this patch as better than what we have now, unless you are thinking of a logic 
bug that allows something we shouldn't. Then let's look at a test case for 
that. 

> Resolve LATEST_TIMESTAMP to current server time before scanning for ACLs
> ------------------------------------------------------------------------
>
>                 Key: HBASE-10823
>                 URL: https://issues.apache.org/jira/browse/HBASE-10823
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.98.1
>            Reporter: Andrew Purtell
>            Assignee: Andrew Purtell
>            Priority: Minor
>             Fix For: 0.99.0, 0.98.2
>
>         Attachments: HBASE-10823.patch, HBASE-10823.patch, HBASE-10823.patch, 
> test.patch
>
>
> Storing values with timestamps in the future is probably bad practice and can 
> lead to surprises. If cells with timestamps in the future have ACLs, 
> permissions from those ACLs will incorrectly be considered for authorizing 
> the pending mutation. For sure that will be surprising.
> We should be able to avoid this case by resolving LATEST_TIMESTAMP to the 
> current server time when creating the internal scanner for finding ACLs in 
> the covered cell set. 
> Documenting a todo item from a discussion between [~anoop.hbase] and myself.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to