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>