hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Feng Honghua (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-8753) Provide new delete flag which can delete all cells under a column-family which have a same designated timestamp
Date Sun, 07 Jul 2013 01:39:48 GMT

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

Feng Honghua commented on HBASE-8753:
-------------------------------------

[~lhofhansl]: Your #1/#2 comments are good.

For #3, your concern is correct. And since the ScanDeleteTracker will be reset/cleared (all
delete markers) after a row is done, the number of family version marker that need to track
at any time during scan is all family version markers that are put to a specific row, not
for all rows and not accumulated throughout the whole scan process. Though in theory it's
possible that client put arbitrarily number of family version markers to a specific row/cf,
but in practice this number is expected to be equal to or less than the number of different
versions(timestamps) of all cells a specific row/cf contains.
                
> Provide new delete flag which can delete all cells under a column-family which have a
same designated timestamp
> ---------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-8753
>                 URL: https://issues.apache.org/jira/browse/HBASE-8753
>             Project: HBase
>          Issue Type: New Feature
>          Components: Deletes, Scanners
>    Affects Versions: 0.95.1
>            Reporter: Feng Honghua
>            Assignee: Feng Honghua
>         Attachments: 8753-trunk-V2.patch, HBASE-8753-0.94-V0.patch, HBASE-8753-trunk-V0.patch,
HBASE-8753-trunk-V1.patch
>
>
> In one of our production scenario (Xiaomi message search), multiple cells will be put
in batch using a same timestamp with different column names under a specific column-family.

> And after some time these cells also need to be deleted in batch by given a specific
timestamp. But the column names are parsed tokens which can be arbitrary words , so such batch
delete is impossible without first retrieving all KVs from that CF and get the column name
list which has KV with that given timestamp, and then issuing individual deleteColumn for
each column in that column-list.
> Though it's possible to do such batch delete, its performance is poor, and customers
also find their code is quite clumsy by first retrieving and populating the column list and
then issuing a deleteColumn for each column in that column-list.
> This feature resolves this problem by introducing a new delete flag: DeleteFamilyVersion.

>   1). When you need to delete all KVs under a column-family with a given timestamp, just
call Delete.deleteFamilyVersion(cfName, timestamp); only a DeleteFamilyVersion type KV is
put to HBase (like DeleteFamily / DeleteColumn / Delete) without read operation;
>   2). Like other delete types, DeleteFamilyVersion takes effect in get/scan/flush/compact
operations, the ScanDeleteTracker now parses out and uses DeleteFamilyVersion to prevent all
KVs under the specific CF which has the same timestamp as the DeleteFamilyVersion KV to pop-up
as part of a get/scan result (also in flush/compact).
> Our customers find this feature efficient, clean and easy-to-use since it does its work
without knowing the exact column names list that needs to be deleted. 
> This feature has been running smoothly for a couple of months in our production clusters.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message