You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Vladimir Rodionov (JIRA)" <ji...@apache.org> on 2015/08/27 22:48:46 UTC

[jira] [Resolved] (HBASE-14263) ExploringCompactionPolicy logic around file selection is broken

     [ https://issues.apache.org/jira/browse/HBASE-14263?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Rodionov resolved HBASE-14263.
---------------------------------------
    Resolution: Invalid

Invalid. I will open doc JIRA instead.

> ExploringCompactionPolicy logic around file selection is broken
> ---------------------------------------------------------------
>
>                 Key: HBASE-14263
>                 URL: https://issues.apache.org/jira/browse/HBASE-14263
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Vladimir Rodionov
>            Assignee: Vladimir Rodionov
>             Fix For: 2.0.0
>
>         Attachments: HBASE-14263.patch
>
>
> It seems that logic around selection of store file candidates is broken:
> {code}
>         // Compute the total size of files that will
>         // have to be read if this set of files is compacted.
>         long size = getTotalStoreSize(potentialMatchFiles);
>         // Store the smallest set of files.  This stored set of files will be used
>         // if it looks like the algorithm is stuck.
>         if (mightBeStuck && size < smallestSize) {
>           smallest = potentialMatchFiles;
>           smallestSize = size;
>         }
>         if (size > comConf.getMaxCompactSize()) {
>           continue;
>         }
>         ++opts;
>         if (size >= comConf.getMinCompactSize()
>             && !filesInRatio(potentialMatchFiles, currentRatio)) {
>           continue;
>         }
> {code}
> This is from applyCompactionPolicy method. As you can see, both min compaction size and max compaction size are applied to a *selection* of files and not to individual files. It mostly works as expected only because nobody seems using non-default hbase.hstore.compaction.max.size, which is  Long.MAX_VALUE  and  it  is not  that  easy  to  figure out  what  is  going  on  on an opposite side (why small files do not get included?)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)