You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2009/11/25 23:30:39 UTC

svn commit: r884310 [7/7] - in /hadoop/hbase/branches/0.20_on_hadoop-0.18.3: ./ bin/ conf/ lib/ src/contrib/ src/contrib/ec2/ src/contrib/ec2/bin/ src/contrib/ec2/bin/image/ src/contrib/transactional/src/java/org/apache/hadoop/hbase/client/tableindexed...

Modified: hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java?rev=884310&r1=884309&r2=884310&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java (original)
+++ hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestStoreScanner.java Wed Nov 25 22:30:29 2009
@@ -354,4 +354,46 @@
     results.clear();
     assertEquals(false, scan.next(results));
   }
+  
+  /**
+   * Test expiration of KeyValues in combination with a configured TTL for 
+   * a column family (as should be triggered in a major compaction).
+   */
+  public void testWildCardTtlScan() throws IOException {
+    long now = System.currentTimeMillis();
+    KeyValue [] kvs = new KeyValue[] {
+        KeyValueTestUtil.create("R1", "cf", "a", now-1000, KeyValue.Type.Put, "dont-care"),
+        KeyValueTestUtil.create("R1", "cf", "b", now-10, KeyValue.Type.Put, "dont-care"),
+        KeyValueTestUtil.create("R1", "cf", "c", now-200, KeyValue.Type.Put, "dont-care"),
+        KeyValueTestUtil.create("R1", "cf", "d", now-10000, KeyValue.Type.Put, "dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "a", now, KeyValue.Type.Put, "dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "b", now-10, KeyValue.Type.Put, "dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "c", now-200, KeyValue.Type.Put, "dont-care"),
+        KeyValueTestUtil.create("R2", "cf", "c", now-1000, KeyValue.Type.Put, "dont-care")
+    };
+    KeyValueScanner [] scanners = new KeyValueScanner[] {
+        new KeyValueScanFixture(KeyValue.COMPARATOR, kvs)
+    };
+    Scan scan = new Scan();
+    scan.setMaxVersions(1);
+    StoreScanner scanner =
+      new StoreScanner(scan, CF, 500, KeyValue.COMPARATOR,
+          null, scanners);
+
+    List<KeyValue> results = new ArrayList<KeyValue>();
+    assertEquals(true, scanner.next(results));
+    assertEquals(2, results.size());
+    assertEquals(kvs[1], results.get(0));
+    assertEquals(kvs[2], results.get(1));
+    results.clear();
+    
+    assertEquals(true, scanner.next(results));
+    assertEquals(3, results.size());
+    assertEquals(kvs[4], results.get(0));
+    assertEquals(kvs[5], results.get(1));
+    assertEquals(kvs[6], results.get(2));
+    results.clear();
+    
+    assertEquals(false, scanner.next(results));
+  }
 }

Modified: hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java?rev=884310&r1=884309&r2=884310&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java (original)
+++ hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/test/org/apache/hadoop/hbase/regionserver/TestWildcardColumnTracker.java Wed Nov 25 22:30:29 2009
@@ -330,6 +330,23 @@
       }
     }
   }
+
+  // HBASE-1781
+  public void testStackOverflow(){
+    int maxVersions = 1;
+
+    ColumnTracker wild = new WildcardColumnTracker(maxVersions);
+    for(int i = 0; i < 100000; i+=2) {
+      byte [] col = Bytes.toBytes("col"+i);
+      wild.checkColumn(col, 0, col.length);
+    }
+    wild.update();
+
+    for(int i = 1; i < 100000; i+=2) {
+      byte [] col = Bytes.toBytes("col"+i);
+      wild.checkColumn(col, 0, col.length);
+    }
+  }
   
   
   

Modified: hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp
URL: http://svn.apache.org/viewvc/hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp?rev=884310&r1=884309&r2=884310&view=diff
==============================================================================
--- hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp (original)
+++ hadoop/hbase/branches/0.20_on_hadoop-0.18.3/src/webapps/master/table.jsp Wed Nov 25 22:30:29 2009
@@ -110,7 +110,7 @@
 <tr>
   <td><%= Bytes.toString(meta.getRegionName()) %></td>
     <td><a href="<%= url %>"><%= meta.getServer().getHostname().toString() + ":" + infoPort %></a></td>
-    <td>-</td><td><%= Bytes.toString(meta.getStartKey()) %></td><td>-</td>
+    <td>-</td><td><%= Bytes.toString(meta.getStartKey()) %></td><td><%= Bytes.toString(meta.getEndKey()) %></td>
 </tr>
 <%  } %>
 </table>
@@ -131,15 +131,11 @@
     int infoPort = serverAddressToServerInfos.get(
         hriEntry.getValue()).getInfoPort();
     
-    String urlRegionHistorian =
-        "/regionhistorian.jsp?regionname="+
-                Bytes.toStringBinary(hriEntry.getKey().getRegionName());
-
     String urlRegionServer =
         "http://" + hriEntry.getValue().getHostname().toString() + ":" + infoPort + "/";
 %>
 <tr>
-  <td><a href="<%= urlRegionHistorian %>"><%= Bytes.toStringBinary(hriEntry.getKey().getRegionName())%></a></td>
+  <td><%= Bytes.toStringBinary(hriEntry.getKey().getRegionName())%></td>
   <td><a href="<%= urlRegionServer %>"><%= hriEntry.getValue().getHostname().toString() + ":" + infoPort %></a></td>
   <td><%= hriEntry.getKey().getEncodedName()%></td> <td><%= Bytes.toStringBinary(hriEntry.getKey().getStartKey())%></td>
   <td><%= Bytes.toStringBinary(hriEntry.getKey().getEndKey())%></td>