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>