You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by Apache Wiki <wi...@apache.org> on 2007/05/07 20:22:08 UTC

[Lucene-hadoop Wiki] Update of "Hbase/HbaseArchitecture" by JimKellerman

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Lucene-hadoop Wiki" for change notification.

The following page has been changed by JimKellerman:
http://wiki.apache.org/lucene-hadoop/Hbase/HbaseArchitecture

The comment on the change is:
Add to description of META table

------------------------------------------------------------------------------
  The HMaster keeps the set of currently-available H!RegionServers in
  memory. Since the death of the HMaster means the death of the
  entire system, there's no reason to store this information on
- disk. All information about the HRegion->H!RegionServer mapping is
- stored physically on different tables. Thus, a client does not need to
- contact the HMaster after it learns the location of the ROOT
- HRegion. The load on HMaster should be relatively small: it deals
- with timing out H!RegionServers, scanning the ROOT and META upon
- startup, and serving the location of the ROOT HRegion.
+ disk. 
+ 
+ Unlike Bigtable, which stores information about Tablet->!TabletServer
+ mapping in Chubby, Google's distributed lock server, all information
+ about the HRegion->H!RegionServer mapping is stored physically in the
+ META table (since there is no equivalent to Chubby in the Hadoop
+ environment).
+ 
+ Consequently each row in the META and ROOT tables has three members of
+ the "info:" column family:
+ 
+  1. '''info:regioninfo''' contains a serialized H!RegionInfo object which contains:
+   * regionid
+   * start key
+   * end key
+   * the table descriptor (a serialized H!TableDescriptor)
+   * the region name
+  1. '''info:server''' contains a serialized string which is the server name, a ":" and the port number for the H!RegionServer serving the region
+  1. '''info:startcode''' a serialized long integer generated by the H!RegionServer when it starts. The H!RegionServer sends this start code to the master so the master can determine if the server information in the META and ROOT regions is stale.
+ 
+ Thus, a client does not need to contact the HMaster after it learns
+ the location of the ROOT HRegion. The load on HMaster should be
+ relatively small: it deals with timing out H!RegionServers, scanning
+ the ROOT and META upon startup, and serving the location of the ROOT
+ HRegion.
  
  The HClient is fairly complicated, and often needs to navigate the
  ROOT and META HRegions when serving a user's request to scan a