You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Alston Williams (JIRA)" <ji...@apache.org> on 2019/01/13 08:10:00 UTC

[jira] [Commented] (HBASE-21504) If enable FIFOCompactionPolicy, a compaction may write a "empty" hfile whose maxTimeStamp is long max. This kind of hfile will never be archived.

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

Alston Williams commented on HBASE-21504:
-----------------------------------------

Hello,

I have tested this issue, and looked at the solution. But I think there is a better solution.

Actually, this issue is caused by, the HStoreFile's max timestamp is Long.MAX_VALUE if it is empty. And I think it is unreasonable.

I think it is more reasonable to set HStoreFile's max timestamp to it's min timestamp if max timestamp is not present. And based on this solution, I export a patch. I have also tested it by the unit test provided by author.

Thanks if you can give it a look.

> If enable FIFOCompactionPolicy, a compaction may write a "empty" hfile whose maxTimeStamp is long max. This kind of hfile will never be archived.
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-21504
>                 URL: https://issues.apache.org/jira/browse/HBASE-21504
>             Project: HBase
>          Issue Type: Bug
>          Components: Compaction
>    Affects Versions: 2.1.0
>            Reporter: xuming
>            Assignee: Zheng Hu
>            Priority: Critical
>             Fix For: 3.0.0, 1.5.0, 2.2.0, 1.4.9, 2.1.2, 1.2.10, 2.0.4
>
>         Attachments: 1.patch, HBASE-21504.v1.patch
>
>
> When i use FIFOCompactionPolicy, and if all hfiles(>1) are TTL expired in a region, once we do a compaction on the region, the compaction policy will select the latest hfile to do compaction.But beacuse the latest hfile is already TTL expired, compactor only write a "empty" hfile(whose entry counter is 0 and maxTimeStamp is Long.MAX_VALUE) finally. Because maxTimeStamp is long max, so the "empty" hfile will never be TTL expired, more seriously we can not archive it by FIFOCompactionPolicy forever.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)