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/10/01 00:29:09 UTC

svn commit: r1177866 - /hbase/trunk/src/site/xdoc/replication.xml

Author: stack
Date: Fri Sep 30 22:29:09 2011
New Revision: 1177866

URL: http://svn.apache.org/viewvc?rev=1177866&view=rev
Log:
HBASE-4517 Document new replication features in 0.92

Modified:
    hbase/trunk/src/site/xdoc/replication.xml

Modified: hbase/trunk/src/site/xdoc/replication.xml
URL: http://svn.apache.org/viewvc/hbase/trunk/src/site/xdoc/replication.xml?rev=1177866&r1=1177865&r2=1177866&view=diff
==============================================================================
--- hbase/trunk/src/site/xdoc/replication.xml (original)
+++ hbase/trunk/src/site/xdoc/replication.xml Fri Sep 30 22:29:09 2011
@@ -74,6 +74,10 @@
         and the master cluster will do its “best effort” to balance the stream
         of replication on the slave clusters by relying on randomization.
       </p>
+      <p>
+        As of version 0.92 HBase supports master/master and cyclic replication as
+        well as replication to multiple slaves.
+      </p>
       <img src="images/replication_overview.png"/>
     </section>
     <section name="Enabling replication">
@@ -104,10 +108,14 @@
         <p>
           In a separate thread, the edit is read from the log (as part of a batch)
           and only the KVs that are replicable are kept (that is, that they are part
-          of a family scoped GLOBAL in the family's schema and non-catalog so not
-          .META. or -ROOT-). When the buffer is filled, or the reader hits the
-          end of the file, the buffer is sent to a random region server on the
-          slave cluster.
+          of a family scoped GLOBAL in the family's schema, non-catalog so not
+          .META. or -ROOT-, and did not originate in the target slave cluster - in
+          case of cyclic replication).
+        </p>
+        <p>
+          The edit is then tagged with the master's cluster UUID.
+          When the buffer is filled, or the reader hits the end of the file,
+          the buffer is sent to a random region server on the slave cluster.
         </p>
         <p>
           Synchronously, the region server that receives the edits reads them
@@ -115,6 +123,8 @@
           Once all edits are read, each buffer is flushed using the normal HBase
           client (HTables managed by a HTablePool). This is done in order to
           leverage parallel insertion (MultiPut).
+          The master's cluster UUID is retained in the edits applied at the
+          slave cluster in order to allow cyclic replication.
         </p>
         <p>
           Back in the master cluster's region server, the offset for the current
@@ -394,18 +404,6 @@
             queues of another dead RS, we will miss the data from the queues
             that weren't copied.
         </li>
-        <li>
-            HBASE-2196, a master cluster can only support a single slave, some
-            refactoring is needed to support this.
-        </li>
-        <li>
-            HBASE-2195, edits are applied disregard their home cluster, it should
-            carry that data and check it.
-        </li>
-        <li>
-            HBASE-3130, the master cluster needs to be restarted if its region
-            servers lose their session with a slave cluster.
-        </li>
       </ol>
     </section>
   </body>