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 2012/04/13 22:28:22 UTC

svn commit: r1325937 [7/7] - in /hbase/trunk/src: main/java/org/apache/hadoop/hbase/catalog/ main/java/org/apache/hadoop/hbase/client/ main/java/org/apache/hadoop/hbase/filter/ main/java/org/apache/hadoop/hbase/io/ main/java/org/apache/hadoop/hbase/ipc...

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java?rev=1325937&r1=1325936&r2=1325937&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestAssignmentManager.java Fri Apr 13 20:28:21 2012
@@ -31,23 +31,25 @@ import org.apache.hadoop.hbase.HBaseTest
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.HRegionInfo;
 import org.apache.hadoop.hbase.HServerLoad;
-import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.Server;
 import org.apache.hadoop.hbase.ServerName;
 import org.apache.hadoop.hbase.SmallTests;
 import org.apache.hadoop.hbase.ZooKeeperConnectionException;
 import org.apache.hadoop.hbase.catalog.CatalogTracker;
-import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.HConnection;
 import org.apache.hadoop.hbase.client.HConnectionTestingUtility;
 import org.apache.hadoop.hbase.client.Result;
-import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.executor.EventHandler.EventType;
 import org.apache.hadoop.hbase.executor.ExecutorService;
 import org.apache.hadoop.hbase.executor.ExecutorService.ExecutorType;
 import org.apache.hadoop.hbase.executor.RegionTransitionData;
-import org.apache.hadoop.hbase.ipc.HRegionInterface;
 import org.apache.hadoop.hbase.master.handler.ServerShutdownHandler;
+import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.protobuf.ClientProtocol;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.GetRequest;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.GetResponse;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanRequest;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanResponse;
 import org.apache.hadoop.hbase.regionserver.RegionOpeningState;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Pair;
@@ -65,6 +67,9 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.mockito.Mockito;
 
+import com.google.protobuf.RpcController;
+import com.google.protobuf.ServiceException;
+
 
 /**
  * Test {@link AssignmentManager}
@@ -151,7 +156,7 @@ public class TestAssignmentManager {
    */
   @Test(timeout = 5000)
   public void testBalanceOnMasterFailoverScenarioWithOpenedNode()
-      throws IOException, KeeperException, InterruptedException {
+      throws IOException, KeeperException, InterruptedException, ServiceException {
     AssignmentManagerWithExtrasForTesting am =
       setUpMockedAssignmentManager(this.server, this.serverManager);
     try {
@@ -194,7 +199,7 @@ public class TestAssignmentManager {
 
   @Test(timeout = 5000)
   public void testBalanceOnMasterFailoverScenarioWithClosedNode()
-      throws IOException, KeeperException, InterruptedException {
+      throws IOException, KeeperException, InterruptedException, ServiceException {
     AssignmentManagerWithExtrasForTesting am =
       setUpMockedAssignmentManager(this.server, this.serverManager);
     try {
@@ -238,7 +243,7 @@ public class TestAssignmentManager {
 
   @Test(timeout = 5000)
   public void testBalanceOnMasterFailoverScenarioWithOfflineNode()
-      throws IOException, KeeperException, InterruptedException {
+      throws IOException, KeeperException, InterruptedException, ServiceException {
     AssignmentManagerWithExtrasForTesting am =
       setUpMockedAssignmentManager(this.server, this.serverManager);
     try {
@@ -363,7 +368,8 @@ public class TestAssignmentManager {
    * @throws IOException
    */
   @Test
-  public void testShutdownHandler() throws KeeperException, IOException {
+  public void testShutdownHandler()
+      throws KeeperException, IOException, ServiceException {
     // Create and startup an executor.  This is used by AssignmentManager
     // handling zk callbacks.
     ExecutorService executor = startupMasterExecutor("testShutdownHandler");
@@ -380,19 +386,20 @@ public class TestAssignmentManager {
 
       // Need to set up a fake scan of meta for the servershutdown handler
       // Make an RS Interface implementation.  Make it so a scanner can go against it.
-      HRegionInterface implementation = Mockito.mock(HRegionInterface.class);
+      ClientProtocol implementation = Mockito.mock(ClientProtocol.class);
       // Get a meta row result that has region up on SERVERNAME_A
       Result r = Mocking.getMetaTableRowResult(REGIONINFO, SERVERNAME_A);
-      Mockito.when(implementation.openScanner((byte [])Mockito.any(), (Scan)Mockito.any())).
-        thenReturn(System.currentTimeMillis());
-      // Return a good result first and then return null to indicate end of scan
-      Mockito.when(implementation.next(Mockito.anyLong(), Mockito.anyInt())).
-        thenReturn(new Result [] {r}, (Result [])null);
+      ScanResponse.Builder builder = ScanResponse.newBuilder();
+      builder.setMoreResults(false);
+      builder.addResult(ProtobufUtil.toResult(r));
+      Mockito.when(implementation.scan(
+        (RpcController)Mockito.any(), (ScanRequest)Mockito.any())).
+          thenReturn(builder.build());
 
       // Get a connection w/ mocked up common methods.
       HConnection connection =
         HConnectionTestingUtility.getMockedConnectionAndDecorate(HTU.getConfiguration(),
-          implementation, SERVERNAME_B, REGIONINFO);
+          null, implementation, SERVERNAME_B, REGIONINFO);
 
       // Make it so we can get a catalogtracker from servermanager.. .needed
       // down in guts of server shutdown handler.
@@ -531,7 +538,7 @@ public class TestAssignmentManager {
    */
   private AssignmentManagerWithExtrasForTesting setUpMockedAssignmentManager(final Server server,
       final ServerManager manager)
-  throws IOException, KeeperException {
+  throws IOException, KeeperException, ServiceException {
     // We need a mocked catalog tracker. Its used by our AM instance.
     CatalogTracker ct = Mockito.mock(CatalogTracker.class);
     // Make an RS Interface implementation. Make it so a scanner can go against
@@ -539,21 +546,24 @@ public class TestAssignmentManager {
     // messing with. Needed when "new master" joins cluster. AM will try and
     // rebuild its list of user regions and it will also get the HRI that goes
     // with an encoded name by doing a Get on .META.
-    HRegionInterface ri = Mockito.mock(HRegionInterface.class);
+    ClientProtocol ri = Mockito.mock(ClientProtocol.class);
     // Get a meta row result that has region up on SERVERNAME_A for REGIONINFO
     Result r = Mocking.getMetaTableRowResult(REGIONINFO, SERVERNAME_A);
-    Mockito.when(ri .openScanner((byte[]) Mockito.any(), (Scan) Mockito.any())).
-      thenReturn(System.currentTimeMillis());
-    // Return good result 'r' first and then return null to indicate end of scan
-    Mockito.when(ri.next(Mockito.anyLong(), Mockito.anyInt())).
-      thenReturn(new Result[] { r }, (Result[]) null);
+    ScanResponse.Builder builder = ScanResponse.newBuilder();
+    builder.setMoreResults(false);
+    builder.addResult(ProtobufUtil.toResult(r));
+    Mockito.when(ri.scan(
+      (RpcController)Mockito.any(), (ScanRequest)Mockito.any())).
+        thenReturn(builder.build());
     // If a get, return the above result too for REGIONINFO
-    Mockito.when(ri.get((byte[]) Mockito.any(), (Get) Mockito.any())).
-      thenReturn(r);
+    GetResponse.Builder getBuilder = GetResponse.newBuilder();
+    getBuilder.setResult(ProtobufUtil.toResult(r));
+    Mockito.when(ri.get((RpcController)Mockito.any(), (GetRequest) Mockito.any())).
+      thenReturn(getBuilder.build());
     // Get a connection w/ mocked up common methods.
     HConnection connection = HConnectionTestingUtility.
-      getMockedConnectionAndDecorate(HTU.getConfiguration(), ri, SERVERNAME_B,
-        REGIONINFO);
+      getMockedConnectionAndDecorate(HTU.getConfiguration(), null,
+        ri, SERVERNAME_B, REGIONINFO);
     // Make it so we can get the connection from our mocked catalogtracker
     Mockito.when(ct.getConnection()).thenReturn(connection);
     // Create and startup an executor. Used by AM handling zk callbacks.

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java?rev=1325937&r1=1325936&r2=1325937&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestCatalogJanitor.java Fri Apr 13 20:28:21 2012
@@ -54,6 +54,10 @@ import org.apache.hadoop.hbase.client.Re
 import org.apache.hadoop.hbase.executor.ExecutorService;
 import org.apache.hadoop.hbase.io.Reference;
 import org.apache.hadoop.hbase.ipc.HRegionInterface;
+import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.protobuf.ClientProtocol;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutateRequest;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutateResponse;
 import org.apache.hadoop.hbase.regionserver.Store;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Writables;
@@ -62,6 +66,9 @@ import org.junit.Test;
 import org.junit.experimental.categories.Category;
 import org.mockito.Mockito;
 
+import com.google.protobuf.RpcController;
+import com.google.protobuf.ServiceException;
+
 @Category(SmallTests.class)
 public class TestCatalogJanitor {
   /**
@@ -76,12 +83,22 @@ public class TestCatalogJanitor {
     MockServer(final HBaseTestingUtility htu)
     throws NotAllMetaRegionsOnlineException, IOException, InterruptedException {
       this.c = htu.getConfiguration();
+      ClientProtocol ri = Mockito.mock(ClientProtocol.class);
+      MutateResponse.Builder builder = MutateResponse.newBuilder();
+      builder.setProcessed(true);
+      try {
+        Mockito.when(ri.mutate(
+          (RpcController)Mockito.any(), (MutateRequest)Mockito.any())).
+            thenReturn(builder.build());
+      } catch (ServiceException se) {
+        throw ProtobufUtil.getRemoteException(se);
+      }
       // Mock an HConnection and a HRegionInterface implementation.  Have the
       // HConnection return the HRI.  Have the HRI return a few mocked up responses
       // to make our test work.
       this.connection =
         HConnectionTestingUtility.getMockedConnectionAndDecorate(this.c,
-          Mockito.mock(HRegionInterface.class),
+          Mockito.mock(HRegionInterface.class), ri,
           new ServerName("example.org,12345,6789"),
           HRegionInfo.FIRST_META_REGIONINFO);
       // Set hbase.rootdir into test dir.

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java?rev=1325937&r1=1325936&r2=1325937&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/master/TestMasterNoCluster.java Fri Apr 13 20:28:21 2012
@@ -194,7 +194,7 @@ public class TestMasterNoCluster {
         // associate so the below mocking of a connection will fail.
         HConnection connection =
           HConnectionTestingUtility.getMockedConnectionAndDecorate(TESTUTIL.getConfiguration(),
-            rs0, rs0.getServerName(), HRegionInfo.ROOT_REGIONINFO);
+            rs0, rs0, rs0.getServerName(), HRegionInfo.ROOT_REGIONINFO);
         return new CatalogTracker(zk, conf, connection, abortable, defaultTimeout);
       }
     };
@@ -271,7 +271,7 @@ public class TestMasterNoCluster {
         // of a connection will fail.
         HConnection connection =
           HConnectionTestingUtility.getMockedConnectionAndDecorate(TESTUTIL.getConfiguration(),
-            rs0, rs0.getServerName(), HRegionInfo.ROOT_REGIONINFO);
+            rs0, rs0, rs0.getServerName(), HRegionInfo.ROOT_REGIONINFO);
         return new CatalogTracker(zk, conf, connection, abortable, defaultTimeout);
       }
     };

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java?rev=1325937&r1=1325936&r2=1325937&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/OOMERegionServer.java Fri Apr 13 20:28:21 2012
@@ -25,6 +25,11 @@ import java.util.List;
 
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.protobuf.ProtobufUtil;
+import org.apache.hadoop.hbase.protobuf.RequestConverter;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutateRequest;
+
+import com.google.protobuf.ServiceException;
 
 /**
  * A region server that will OOME.
@@ -42,10 +47,16 @@ public class OOMERegionServer extends HR
 
   public void put(byte [] regionName, Put put)
   throws IOException {
-    super.put(regionName, put);
-    for (int i = 0; i < 30; i++) {
-      // Add the batch update 30 times to bring on the OOME faster.
-      this.retainer.add(put);
+    try {
+      MutateRequest request =
+        RequestConverter.buildMutateRequest(regionName, put);
+      super.mutate(null, request);
+      for (int i = 0; i < 30; i++) {
+        // Add the batch update 30 times to bring on the OOME faster.
+        this.retainer.add(put);
+      }
+    } catch (ServiceException se) {
+      throw ProtobufUtil.getRemoteException(se);
     }
   }
 

Modified: hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java
URL: http://svn.apache.org/viewvc/hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java?rev=1325937&r1=1325936&r2=1325937&view=diff
==============================================================================
--- hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java (original)
+++ hbase/trunk/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java Fri Apr 13 20:28:21 2012
@@ -39,6 +39,9 @@ import org.apache.hadoop.hbase.client.Se
 import org.apache.hadoop.hbase.io.hfile.CacheConfig;
 import org.apache.hadoop.hbase.io.hfile.Compression;
 import org.apache.hadoop.hbase.io.hfile.HFile;
+import org.apache.hadoop.hbase.ipc.HRegionInterface;
+import org.apache.hadoop.hbase.protobuf.RequestConverter;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.BulkLoadHFileRequest;
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.Pair;
 import org.junit.Test;
@@ -145,7 +148,9 @@ public class TestHRegionServerBulkLoad {
           LOG.debug("Going to connect to server " + location + " for row "
               + Bytes.toStringBinary(row));
           byte[] regionName = location.getRegionInfo().getRegionName();
-          server.bulkLoadHFiles(famPaths, regionName);
+          BulkLoadHFileRequest request =
+            RequestConverter.buildBulkLoadHFileRequest(famPaths, regionName);
+          server.bulkLoadHFile(null, request);
           return null;
         }
       }.withRetries();
@@ -159,6 +164,8 @@ public class TestHRegionServerBulkLoad {
           public Void call() throws Exception {
             LOG.debug("compacting " + location + " for row "
                 + Bytes.toStringBinary(row));
+            HRegionInterface server = connection.getHRegionConnection(
+              location.getHostname(), location.getPort());
             server.compactRegion(location.getRegionInfo(), true);
             numCompactions.incrementAndGet();
             return null;