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 2009/03/23 21:36:52 UTC

svn commit: r757536 - in /hadoop/hbase/trunk: CHANGES.txt src/java/org/apache/hadoop/hbase/regionserver/HRegion.java src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java

Author: stack
Date: Mon Mar 23 20:36:52 2009
New Revision: 757536

URL: http://svn.apache.org/viewvc?rev=757536&view=rev
Log:
HBASE-1274 TestMergeTable is broken in Hudson

Modified:
    hadoop/hbase/trunk/CHANGES.txt
    hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
    hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java

Modified: hadoop/hbase/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/CHANGES.txt?rev=757536&r1=757535&r2=757536&view=diff
==============================================================================
--- hadoop/hbase/trunk/CHANGES.txt (original)
+++ hadoop/hbase/trunk/CHANGES.txt Mon Mar 23 20:36:52 2009
@@ -55,6 +55,7 @@
    HBASE-1270  Fix TestInfoServers (Nitay Joffe via Stack)
    HBASE-1277  HStoreKey: Wrong comparator logic (Evgeny Ryabitskiy)
    HBASE-1275  TestTable.testCreateTable broken (Ryan Rawson via Stack)
+   HBASE-1274  TestMergeTable is broken in Hudson (Nitay Joffe via Stack)
 
   IMPROVEMENTS
    HBASE-1089  Add count of regions on filesystem to master UI; add percentage

Modified: hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=757536&r1=757535&r2=757536&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hadoop/hbase/trunk/src/java/org/apache/hadoop/hbase/regionserver/HRegion.java Mon Mar 23 20:36:52 2009
@@ -2380,7 +2380,7 @@
   }
 
   /**
-   * Merge two HRegions.  The regions must be adjacent andmust not overlap.
+   * Merge two HRegions.  The regions must be adjacent and must not overlap.
    * 
    * @param srcA
    * @param srcB
@@ -2497,7 +2497,7 @@
           // Can't have same sequenceid since on open of a store, this is what
           // distingushes the files (see the map of stores how its keyed by
           // sequenceid).
-          throw new IOException("Files have same sequenceid");
+          throw new IOException("Files have same sequenceid: " + seqA);
         }
       }
       for (StoreFile hsf: srcFiles) {

Modified: hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java?rev=757536&r1=757535&r2=757536&view=diff
==============================================================================
--- hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java (original)
+++ hadoop/hbase/trunk/src/test/org/apache/hadoop/hbase/AbstractMergeTestBase.java Mon Mar 23 20:36:52 2009
@@ -90,11 +90,18 @@
 
     byte [] row_70001 = Bytes.toBytes("row_70001");
     byte [] row_80001 = Bytes.toBytes("row_80001");
-    
+
+    // XXX: Note that the number of rows we put in is different for each region
+    // because currently we don't have a good mechanism to handle merging two
+    // store files with the same sequence id. We can't just dumbly stick them
+    // in because it will screw up the order when the store files are loaded up.
+    // The sequence ids are used for arranging the store files, so if two files
+    // have the same id, one will overwrite the other one in our listing, which
+    // is very bad. See HBASE-1212 and HBASE-1274.
     HRegion[] regions = {
       createAregion(null, row_70001, 1, 70000),
       createAregion(row_70001, row_80001, 70001, 10000),
-      createAregion(row_80001, null, 80001, 10000)
+      createAregion(row_80001, null, 80001, 11000)
     };
     
     // Now create the root and meta regions and insert the data regions