Author: stack
Date: Thu Apr 14 18:46:47 2011
New Revision: 1092437
URL: http://svn.apache.org/viewvc?rev=1092437&view=rev
Log:
HBASE-3753 Book.xml - architecture, adding more Store info
Modified:
hbase/trunk/CHANGES.txt
hbase/trunk/src/docbkx/book.xml
Modified: hbase/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1092437&r1=1092436&r2=1092437&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Thu Apr 14 18:46:47 2011
@@ -160,6 +160,7 @@ Release 0.91.0 - Unreleased
HBASE-3759 Eliminate use of ThreadLocals for CoprocessorEnvironment
bypass() and complete()
HBASE-3701 revisit ArrayList creation (Ted Yu via Stack)
+ HBASE-3753 Book.xml - architecture, adding more Store info (Doug Meil)
TASKS
HBASE-3559 Move report of split to master OFF the heartbeat channel
Modified: hbase/trunk/src/docbkx/book.xml
URL:
http://svn.apache.org/viewvc/hbase/trunk/src/docbkx/book.xml?rev=1092437&r1=1092436&r2=1092437&view=diff
==============================================================================
--- hbase/trunk/src/docbkx/book.xml (original)
+++ hbase/trunk/src/docbkx/book.xml Thu Apr 14 18:46:47 2011
@@ -823,11 +823,17 @@ HTable table2 = new HTable(conf2, "myTab
<section xml:id="store">
<title>Store</title>
- <para>A Store hosts a MemStore and 0 or more StoreFiles.
- StoreFiles are HFiles.
+ <para>A Store hosts a MemStore and 0 or more StoreFiles (HFiles). A
Store corresponds to a column family for a table for a given region.
</para>
+ <section xml:id="store.memstore">
+ <title>MemStore</title>
+ <para>The MemStore holds in-memory modifications to the Store.
Modifications are KeyValues.
+ When asked to flush, current memstore is moved to snapshot and is
cleared.
+ HBase continues to serve edits out of new memstore and backing snapshot
until flusher reports in that the
+ flush succeeded. At this point the snapshot is let go.</para>
+ </section>
<section xml:id="hfile">
- <title>HFile</title>
+ <title>StoreFile (HFile)</title>
<section><title>HFile Format</title>
<para>The <emphasis>hfile</emphasis> file format is based on
the SSTable file described in the <link
xlink:href="http://labs.google.com/papers/bigtable.html">BigTable [2006]</link>
paper and on
@@ -852,6 +858,19 @@ HTable table2 = new HTable(conf2, "myTab
tool.</para>
</section>
</section>
+ <section xml:id="compaction">
+ <title>Compaction</title>
+ <para>There are two types of compactions: minor and major. Minor
compactions will usually pick up a couple of the smaller adjacent
+ files and rewrite them as one. Minors do not drop deletes or expired
cells, only major compactions do this. Sometimes a minor compaction
+ will pick up all the files in the store and in this case it actually
promotes itself to being a major compaction.
+ For a description of how a minor compaction picks files to compact,
see the <link
xlink:href="http://hbase.apache.org/xref/org/apache/hadoop/hbase/regionserver/Store.html#836">ascii
diagram in the Store source code.</link>
+ </para>
+ <para>After a major compaction runs there will be a single storefile
per store, and this will help performance usually. Caution: major compactions
rewrite all of the stores data and on a loaded system, this may not be tenable;
+ major compactions will usually have to be <link
linkend="disable.splitting">managed</link> on large systems.
+ </para>
+ </section>
+
+
</section>
</section>