hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chia-Ping Tsai (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-18572) Delete#addColumn can't remove the cell which has no visibility label
Date Mon, 14 Aug 2017 13:14:00 GMT

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

Chia-Ping Tsai commented on HBASE-18572:
----------------------------------------

bq.   So the delete should delete only the puts that are having corresponding Vis labels.
If the put is not havin any such vis label the delete should not be marking it as deleted.
So do I. 

bq. Is all test cases in 'TestVisibilityLabelsWithDeletes' passing after this change?
yes. It passes locally, and QA looks good.



> Delete#addColumn can't remove the cell which has no visibility label
> --------------------------------------------------------------------
>
>                 Key: HBASE-18572
>                 URL: https://issues.apache.org/jira/browse/HBASE-18572
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Chia-Ping Tsai
>            Assignee: Chia-Ping Tsai
>         Attachments: HBASE-18572.ut.patch, HBASE-18572.v0.patch, HBASE-18572.v0.patch
>
>
> {code:title=DefaultVisibilityLabelServiceImpl.java}
>   @Override
>   public boolean matchVisibility(List<Tag> putVisTags, Byte putTagsFormat, List<Tag>
deleteVisTags,
>       Byte deleteTagsFormat) throws IOException {
>     if ((deleteTagsFormat != null && deleteTagsFormat == SORTED_ORDINAL_SERIALIZATION_FORMAT)
>         && (putTagsFormat == null || putTagsFormat == SORTED_ORDINAL_SERIALIZATION_FORMAT))
{
>       if (putVisTags.isEmpty()) {
>         // Early out if there are no tags in the cell
>         return false;
>       }
>       if (putTagsFormat == null) {
>         return matchUnSortedVisibilityTags(putVisTags, deleteVisTags);
>       } else {
>         return matchOrdinalSortedVisibilityTags(putVisTags, deleteVisTags);
>       }
>     }
>     throw new IOException("Unexpected tag format passed for comparison, deleteTagsFormat
: "
>         + deleteTagsFormat + ", putTagsFormat : " + putTagsFormat);
>   }
> {code}
> If the putVisTags is empty, it will return the false directly. Hence, the Delete#addColumn
can't "see" the cell as well as deleting it. The Delete#addColumns, by contrast, doesn't invoke
the cp#prePrepareTimeStampForDeleteVersion so it can remove the cell.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message