You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2011/05/19 01:49:53 UTC
svn commit: r1124467 - /hbase/trunk/src/docbkx/book.xml
Author: stack
Date: Wed May 18 23:49:53 2011
New Revision: 1124467
URL: http://svn.apache.org/viewvc?rev=1124467&view=rev
Log:
HBASE-3888 book.xml - filled in architecture 'daemon' section
Modified:
hbase/trunk/src/docbkx/book.xml
Modified: hbase/trunk/src/docbkx/book.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/src/docbkx/book.xml?rev=1124467&r1=1124466&r2=1124467&view=diff
==============================================================================
--- hbase/trunk/src/docbkx/book.xml (original)
+++ hbase/trunk/src/docbkx/book.xml Wed May 18 23:49:53 2011
@@ -748,8 +748,70 @@ HTable table2 = new HTable(conf2, "myTab
<section xml:id="daemons">
<title>Daemons</title>
<section xml:id="master"><title>Master</title>
+ <para><code>HMaster</code> is the implementation of the Master Server. The Master server
+ is responsible for monitoring all RegionServer instances in the cluster, and is
+ the interface for all metadata changes.
+ </para>
+ <section xml:id="master.startup"><title>Startup Behavior</title>
+ <para>If run in a multi-Master environment, all Masters compete to run the cluster. If the active
+ Master loses it's lease in ZooKeeper (or the Master shuts down), then then the remaining Masters jostle to
+ take over the Master role.
+ </para>
+ </section>
+ <section xml:id="master.api"><title>Interface</title>
+ <para>The methods exposed by <code>HMasterInterface</code> are primarily metadata-oriented methods:
+ <itemizedlist>
+ <listitem>Table (createTable, modifyTable, removeTable, enable, disable)
+ </listitem>
+ <listitem>ColumnFamily (addColumn, modifyColumn, removeColumn)
+ </listitem>
+ <listitem>Region (move, assign, unassign)
+ </listitem>
+ </itemizedlist>
+ For example, when the <code>HBaseAdmin</code> method <code>disableTable</code> is invoked, it is serviced by the Master server.
+ </para>
+ </section>
+ <section xml:id="master.processes"><title>Processes</title>
+ <para>The Master runs several background threads:
+ <itemizedlist>
+ <listitem><code>LoadBalancer</code> periodically reassign regions in the cluster.
+ </listitem>
+ <listitem><code>CatalogJanitor</code> periodically checks and cleans up the .META. table.
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
</section>
<section xml:id="regionserver.arch"><title>RegionServer</title>
+ <para><code>HRegionServer</code> is the RegionServer implementation. It is responsible for serving and managing regions.
+ </para>
+ <section xml:id="regionserver.arch.api"><title>Interface</title>
+ <para>The methods exposed by <code>HRegionRegionInterface</code> contain both data-oriented and region-maintenance methods:
+ <itemizedlist>
+ <listitem>Data (get, put, delete, next, etc.)
+ </listitem>
+ <listitem>Region (splitRegion, compactRegion, etc.)
+ </listitem>
+ </itemizedlist>
+ For example, when the <code>HBaseAdmin</code> method <code>majorCompact</code> is invoked on a table, the client is actually iterating through
+ all regions for the specified table and requesting a major compaction directly to each region.
+ </para>
+ </section>
+ <section xml:id="regionserver.arch.processes"><title>Processes</title>
+ <para>The RegionServer runs a variety of background threads:</para>
+ <itemizedlist>
+ <listitem><code>CompactSplitThread</code> checks for splits and handle minor compactions.
+ </listitem>
+ <listitem><code>MajorCompactionChecker</code> checks for major compactions.
+ </listitem>
+ <listitem><code>MemStoreFlusher</code> periodically flushes in-memory writes in the MemStore to StoreFiles.
+ </listitem>
+ <listitem><code>LogRoller</code> periodically checks the RegionServer's HLog.
+ </listitem>
+ </itemizedlist>
+ </section>
+
</section>
</section>