You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by an...@apache.org on 2016/03/08 03:11:28 UTC

hbase git commit: HBASE-15354 Use same criteria for clearing meta cache for all operations (addendum) (Ashu Pachauri)

Repository: hbase
Updated Branches:
  refs/heads/master d15ae0e6a -> e477c143b


HBASE-15354 Use same criteria for clearing meta cache for all operations (addendum) (Ashu Pachauri)


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/e477c143
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/e477c143
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/e477c143

Branch: refs/heads/master
Commit: e477c143bca83b8ec8e10c65a0e8ef526e24482e
Parents: d15ae0e
Author: Mikhail Antonov <an...@apache.org>
Authored: Mon Mar 7 18:07:10 2016 -0800
Committer: Mikhail Antonov <an...@apache.org>
Committed: Mon Mar 7 18:11:15 2016 -0800

----------------------------------------------------------------------
 .../hadoop/hbase/client/TestMetaCache.java      | 49 +++++++++++++-------
 1 file changed, 32 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/e477c143/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java
index 5738be9..23b9eed 100644
--- a/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java
+++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestMetaCache.java
@@ -19,8 +19,6 @@ package org.apache.hadoop.hbase.client;
 
 import com.google.protobuf.RpcController;
 import com.google.protobuf.ServiceException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.*;
 
@@ -34,6 +32,7 @@ import org.apache.hadoop.hbase.regionserver.RSRpcServices;
 import org.apache.hadoop.hbase.testclassification.ClientTests;
 import org.apache.hadoop.hbase.testclassification.MediumTests;
 import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.JVMClusterUtil;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -45,17 +44,19 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
 
+import static junit.framework.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
 
 @Category({MediumTests.class, ClientTests.class})
 public class TestMetaCache {
-  private static final Log LOG = LogFactory.getLog(TestMetaCache.class);
   private final static HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
   private static final TableName TABLE_NAME = TableName.valueOf("test_table");
   private static final byte[] FAMILY = Bytes.toBytes("fam1");
   private static final byte[] QUALIFIER = Bytes.toBytes("qual");
   private ConnectionImplementation conn;
+  private HRegionServer badRS;
 
   /**
    * @throws java.lang.Exception
@@ -64,8 +65,9 @@ public class TestMetaCache {
   public static void setUpBeforeClass() throws Exception {
     Configuration conf = TEST_UTIL.getConfiguration();
     conf.set("hbase.client.retries.number", "1");
-    conf.setStrings(HConstants.REGION_SERVER_IMPL, RegionServerWithFakeRpcServices.class.getName());
     TEST_UTIL.startMiniCluster(1);
+    TEST_UTIL.getHBaseCluster().waitForActiveAndReadyMaster();
+    TEST_UTIL.waitUntilAllRegionsAssigned(TABLE_NAME.META_TABLE_NAME);
   }
 
 
@@ -82,8 +84,21 @@ public class TestMetaCache {
    */
   @Before
   public void setup() throws Exception {
-    conn = (ConnectionImplementation)ConnectionFactory.createConnection(
-        TEST_UTIL.getConfiguration());
+    MiniHBaseCluster cluster = TEST_UTIL.getHBaseCluster();
+
+    cluster.getConfiguration().setStrings(HConstants.REGION_SERVER_IMPL,
+      RegionServerWithFakeRpcServices.class.getName());
+    JVMClusterUtil.RegionServerThread rsThread = cluster.startRegionServer();
+    rsThread.waitForServerOnline();
+    badRS = rsThread.getRegionServer();
+    assertTrue(badRS.getRSRpcServices() instanceof FakeRSRpcServices);
+    cluster.getConfiguration().setStrings(HConstants.REGION_SERVER_IMPL,
+      HRegionServer.class.getName());
+
+    assertEquals(2, cluster.getRegionServerThreads().size());
+
+    conn = (ConnectionImplementation) ConnectionFactory.createConnection(
+      TEST_UTIL.getConfiguration());
     HTableDescriptor table = new HTableDescriptor(TABLE_NAME);
     HColumnDescriptor fam = new HColumnDescriptor(FAMILY);
     fam.setMaxVersions(2);
@@ -105,7 +120,7 @@ public class TestMetaCache {
   @Test
   public void testPreserveMetaCacheOnException() throws Exception {
     Table table = conn.getTable(TABLE_NAME);
-    byte [] row = HBaseTestingUtility.KEYS[2];
+    byte[] row = badRS.getOnlineRegions().get(0).getRegionInfo().getStartKey();
 
     Put put = new Put(row);
     put.addColumn(FAMILY, QUALIFIER, Bytes.toBytes(10));
@@ -151,19 +166,19 @@ public class TestMetaCache {
 
   public static List<Throwable> metaCachePreservingExceptions() {
     return new ArrayList<Throwable>() {{
-        add(new RegionOpeningException(" "));
-        add(new RegionTooBusyException());
-        add(new ThrottlingException(" "));
-        add(new MultiActionResultTooLarge(" "));
-        add(new RetryImmediatelyException(" "));
-        add(new CallQueueTooBigException());
+      add(new RegionOpeningException(" "));
+      add(new RegionTooBusyException());
+      add(new ThrottlingException(" "));
+      add(new MultiActionResultTooLarge(" "));
+      add(new RetryImmediatelyException(" "));
+      add(new CallQueueTooBigException());
     }};
   }
 
   protected static class RegionServerWithFakeRpcServices extends HRegionServer {
 
     public RegionServerWithFakeRpcServices(Configuration conf, CoordinatedStateManager cp)
-        throws IOException, InterruptedException {
+      throws IOException, InterruptedException {
       super(conf, cp);
     }
 
@@ -185,7 +200,7 @@ public class TestMetaCache {
 
     @Override
     public GetResponse get(final RpcController controller,
-        final ClientProtos.GetRequest request) throws ServiceException {
+                           final ClientProtos.GetRequest request) throws ServiceException {
       throwSomeExceptions();
       return super.get(controller, request);
     }
@@ -224,8 +239,8 @@ public class TestMetaCache {
       // single Gets.
       expCount++;
       Throwable t = metaCachePreservingExceptions.get(
-          expCount % metaCachePreservingExceptions.size());
+        expCount % metaCachePreservingExceptions.size());
       throw new ServiceException(t);
     }
   }
-}
+}
\ No newline at end of file