[
https://issues.apache.org/jira/browse/HBASE-11120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14012875#comment-14012875
]
Jean-Daniel Cryans commented on HBASE-11120:
--------------------------------------------
Spent some more time reading through and I saw that I had missed a few things.
BTW, thanks again Misty for working on this, it is much needed.
I'm not sure about this part:
{quote}
However, if the normal compaction
+ algorithm do not find any normally-eligible StoreFiles, a
major compaction is
+ the only way to get out of this situation, and is forced.
This is also called a
+ size-based or size-triggered major compaction.
{quote}
The exploration compaction will select the smallest set of files to compact and
it won't trigger a major compaction. Also, I looked for "size-based" and
"size-triggered" in the code but couldn't find anything so I'm not sure what
this is referring to.
This is wrong:
{quote}
+ <term>If this compaction was user-requested, do a major
compaction.</term>
+ <listitem>
+ <para>Compactions can run on a schedule or can be initiated
manually. If a
+ compaction is requested manually, it is always a major
compaction. If the
+ compaction is user-requested, the major compaction still
happens even if the are
+ more than <varname>hbase.hstore.compaction.max</varname>
files that need
+ compaction.</para>
+ </listitem>
{quote}
It will do a minor compaction if the user asks for that, or a major compaction
if it's specifically asked for.
It might be good to mention that hbase.hstore.compactionThreshold was the old
name for hbase.hstore.compaction.min in this section:
{quote}
+ <row>
+ <entry>hbase.hstore.compaction.min</entry>
+ <entry>The minimum number of files which must be eligible
for compaction before
+ compaction can run.</entry>
+ <entry>3</entry>
+ </row>
{quote}
Those two are wrong (if 1000 bytes was the max we'd probably never compact :P):
{quote}
+ <row>
+ <entry>hbase.hstore.compaction.min.size</entry>
+ <entry>A StoreFile smaller than this size (in bytes) will
always be eligible for
+ minor compaction.</entry>
+ <entry>10</entry>
+ </row>
+ <row>
+ <entry>hbase.hstore.compaction.max.size</entry>
+ <entry>A StoreFile larger than this size (in bytes) will
be excluded from minor
+ compaction.</entry>
+ <entry>1000</entry>
+ </row>
{quote}
It should be 128MB and Long.MAX_VALUE as per:
https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.java#L71
> Update documentation about major compaction algorithm
> -----------------------------------------------------
>
> Key: HBASE-11120
> URL: https://issues.apache.org/jira/browse/HBASE-11120
> Project: HBase
> Issue Type: Bug
> Components: Compaction, documentation
> Affects Versions: 0.98.2
> Reporter: Misty Stanley-Jones
> Assignee: Misty Stanley-Jones
> Attachments: HBASE-11120-2.patch, HBASE-11120-3-rebased.patch,
> HBASE-11120-3.patch, HBASE-11120.patch
>
>
> [14:20:38] <jdcryans> seems that there's
> http://hbase.apache.org/book.html#compaction and
> http://hbase.apache.org/book.html#managed.compactions
> [14:20:56] <jdcryans> the latter doesn't say much, except that you
> should manage them
> [14:21:44] <jdcryans> the former gives a good description of the
> _old_ selection algo
> [14:45:25] <jdcryans> this is the new selection algo since C5 /
> 0.96.0: https://issues.apache.org/jira/browse/HBASE-7842
--
This message was sent by Atlassian JIRA
(v6.2#6252)