Author: stack
Date: Sun Sep 18 18:05:15 2011
New Revision: 1172312

URL: http://svn.apache.org/viewvc?rev=1172312&view=rev
Log:
HBASE-4375 [hbck] Add region coverage visualization to hbck

Modified:
    hbase/branches/0.90/CHANGES.txt
    
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java

Modified: hbase/branches/0.90/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/CHANGES.txt?rev=1172312&r1=1172311&r2=1172312&view=diff
==============================================================================
--- hbase/branches/0.90/CHANGES.txt (original)
+++ hbase/branches/0.90/CHANGES.txt Sun Sep 18 18:05:15 2011
@@ -73,6 +73,8 @@ Release 0.90.5 - Unreleased
                in hbck. (Jonathan Hsieh)
    HBASE-4384  Hard to tell what causes failure in 
CloseRegionHandler#getCurrentVersion
                (Harsh J)
+   HBASE-4375  [hbck] Add region coverage visualization to hbck
+               (Jonathan Hsieh)
  
 Release 0.90.4 - August 10, 2011
   BUG FIXES

Modified: 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java
URL: 
http://svn.apache.org/viewvc/hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java?rev=1172312&r1=1172311&r2=1172312&view=diff
==============================================================================
--- 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java 
(original)
+++ 
hbase/branches/0.90/src/main/java/org/apache/hadoop/hbase/util/HBaseFsck.java 
Sun Sep 18 18:05:15 2011
@@ -635,9 +635,31 @@ public class HBaseFsck {
         }
         prevKey = key;
       }
+      if (details) {
+        // do full region split map dump
+        dump(sc.getSplits(), regions);
+      }
       return errors.getErrorList().size() == originalErrorsCount;
     }
 
+    /**
+     * This dumps data in a visually reasonable way for visual debugging
+     * 
+     * @param splits
+     * @param regions
+     */
+    void dump(TreeSet<byte[]> splits, Multimap<byte[], HbckInfo> regions) {
+      // we display this way because the last end key should be displayed as 
well.
+      for (byte[] k : splits) {
+        System.out.print(Bytes.toString(k) + ":\t");
+        for (HbckInfo r : regions.get(k)) {
+          System.out.print("[ "+ r.toString() + ", " 
+              + Bytes.toString(r.getEndKey())+ "]\t");
+        }
+        System.out.println();
+      }
+    }
+    
   }
 
   /**


Reply via email to