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;