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

Andrew Purtell commented on HBASE-10885:
----------------------------------------

bq. Doing like what ACL does may be easier because we could see which subject 
issues the delete. If a super user/admin that makes the put does the delete 
then we can just allow the delete to happen.

Above I suggest splitting the authorization check and the actual delete 
handling. Do the authorization check in the preDelete hook because we have the 
user's effective label set in the RPC context. Do the delete handling in 
compaction because for the deleteColumn or deleteFamily cases if we convert 
that delete request to a set of per-cell deletes, this could produce an 
explosion of tombstones. 

bq. Apart from this with the ACL delete handling case, some doubts regarding 
the handling of the deleteColumn() -  which deletes only the latest version.  
But with the current implementation even though the current version allows the 
delete with valid permissions for the user, because there is an older version 
with lesser permission we deny the delete.  Is that valid? same applies with 
deleteFamily() also.

Yes, the rule is all visible cells with an ACL must allow the delete, or the 
delete will be denied. However, we should respect the MAX_VERSION of the schema 
when determining the scope of visibility and so changes are needed for that 
(HBASE-10899). 

> Support visibility expressions on Deletes
> -----------------------------------------
>
>                 Key: HBASE-10885
>                 URL: https://issues.apache.org/jira/browse/HBASE-10885
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 0.98.1
>            Reporter: Andrew Purtell
>            Assignee: ramkrishna.s.vasudevan
>             Fix For: 0.99.0, 0.98.2
>
>
> Accumulo can specify visibility expressions for delete markers. During 
> compaction the cells covered by the tombstone are determined in part by 
> matching the visibility expression. This is useful for the use case of data 
> set coalescing, where entries from multiple data sets carrying different 
> labels are combined into one common large table. Later, a subset of entries 
> can be conveniently removed using visibility expressions.
> Currently doing the same in HBase would only be possible with a custom 
> coprocessor. Otherwise, a Delete will affect all cells covered by the 
> tombstone regardless of any visibility expression scoping. This is correct 
> behavior in that no data spill is possible, but certainly could be 
> surprising, and is only meant to be transitional. We decided not to support 
> visibility expressions on Deletes to control the complexity of the initial 
> implementation.



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

Reply via email to