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 2013/03/20 20:36:47 UTC
svn commit: r1459013 [8/8] - in /hbase/trunk:
hbase-client/src/main/java/org/apache/hadoop/hbase/client/
hbase-client/src/main/java/org/apache/hadoop/hbase/ipc/
hbase-client/src/main/java/org/apache/hadoop/hbase/protobuf/
hbase-client/src/test/java/org...
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestIPC.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestIPC.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestIPC.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestIPC.java Wed Mar 20 19:36:46 2013
@@ -25,21 +25,35 @@ import static org.mockito.Mockito.doThro
import static org.mockito.Mockito.spy;
import java.io.IOException;
+import java.lang.reflect.Method;
import java.net.InetSocketAddress;
import java.net.Socket;
+import java.util.ArrayList;
+import java.util.List;
import javax.net.SocketFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.CellScannable;
+import org.apache.hadoop.hbase.CellScanner;
+import org.apache.hadoop.hbase.CellUtil;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.IpcProtocol;
+import org.apache.hadoop.hbase.KeyValue;
+import org.apache.hadoop.hbase.KeyValueUtil;
import org.apache.hadoop.hbase.SmallTests;
+import org.apache.hadoop.hbase.client.Put;
+import org.apache.hadoop.hbase.client.RowMutations;
import org.apache.hadoop.hbase.monitoring.MonitoredRPCHandler;
-import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RpcRequestBody;
+import org.apache.hadoop.hbase.protobuf.RequestConverter;
import org.apache.hadoop.hbase.security.User;
+import org.apache.hadoop.hbase.util.Bytes;
+import org.apache.hadoop.hbase.util.Pair;
+import org.apache.hadoop.io.compress.GzipCodec;
import org.apache.hadoop.net.NetUtils;
import org.apache.hadoop.util.StringUtils;
import org.junit.Test;
@@ -53,6 +67,8 @@ import com.google.protobuf.Message;
@Category(SmallTests.class)
public class TestIPC {
public static final Log LOG = LogFactory.getLog(TestIPC.class);
+ static byte [] CELL_BYTES = Bytes.toBytes("xyz");
+ static Cell CELL = new KeyValue(CELL_BYTES, CELL_BYTES, CELL_BYTES, CELL_BYTES);
private static class TestRpcServer extends HBaseServer {
TestRpcServer() throws IOException {
@@ -60,10 +76,53 @@ public class TestIPC {
}
@Override
- public Message call(Class<? extends IpcProtocol> protocol,
- RpcRequestBody param, long receiveTime, MonitoredRPCHandler status)
+ public Pair<Message, CellScanner> call(Class<? extends IpcProtocol> protocol, Method method,
+ Message param, final CellScanner cells, long receiveTime, MonitoredRPCHandler status)
throws IOException {
- return param;
+ /*
+ List<Cell> cellsOut = new ArrayList<Cell>();
+ while (cells.advance()) {
+ Cell cell = cells.current();
+ Bytes.equals(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(),
+ CELL_BYTES, 0, CELL_BYTES.length);
+ cellsOut.add(cell);
+ }
+ return new Pair<Message, CellScanner>(param, CellUtil.createCellScanner(cellsOut));
+ */
+ return new Pair<Message, CellScanner>(param, null);
+ }
+ }
+
+ /**
+ * A nothing protocol used in test below.
+ */
+ interface NothingProtocol extends IpcProtocol {
+ void doNothing();
+ }
+
+ public static class DoNothing implements NothingProtocol {
+ public void doNothing() {}
+ }
+
+ @Test
+ public void testCompressCellBlock()
+ throws IOException, InterruptedException, SecurityException, NoSuchMethodException {
+ Configuration conf = HBaseConfiguration.create();
+ conf.set("hbase.client.rpc.compressor", GzipCodec.class.getCanonicalName());
+ TestRpcServer rpcServer = new TestRpcServer();
+ HBaseClient client = new HBaseClient(conf, HConstants.CLUSTER_ID_DEFAULT);
+ List<Cell> cells = new ArrayList<Cell>();
+ cells.add(CELL);
+ try {
+ rpcServer.start();
+ InetSocketAddress address = rpcServer.getListenerAddress();
+ // Get any method name... just so it is not null
+ Method m = NothingProtocol.class.getMethod("doNothing");
+ client.call(m, null, CellUtil.createCellScanner(cells), address, NothingProtocol.class,
+ User.getCurrent(), 0);
+ } finally {
+ client.stop();
+ rpcServer.stop();
}
}
@@ -81,18 +140,73 @@ public class TestIPC {
}).when(spyFactory).createSocket();
TestRpcServer rpcServer = new TestRpcServer();
- rpcServer.start();
-
- HBaseClient client = new HBaseClient(
- conf, HConstants.CLUSTER_ID_DEFAULT, spyFactory);
- InetSocketAddress address = rpcServer.getListenerAddress();
-
+ HBaseClient client = new HBaseClient(conf, HConstants.CLUSTER_ID_DEFAULT, spyFactory);
try {
- client.call(RpcRequestBody.getDefaultInstance(), address, User.getCurrent(), 0);
+ rpcServer.start();
+ InetSocketAddress address = rpcServer.getListenerAddress();
+ client.call(null, null, null, address, null, User.getCurrent(), 0);
fail("Expected an exception to have been thrown!");
} catch (Exception e) {
LOG.info("Caught expected exception: " + e.toString());
assertTrue(StringUtils.stringifyException(e).contains("Injected fault"));
+ } finally {
+ client.stop();
+ rpcServer.stop();
+ }
+ }
+
+ public static void main(String[] args)
+ throws IOException, SecurityException, NoSuchMethodException, InterruptedException {
+ if (args.length != 2) {
+ System.out.println("Usage: TestIPC <CYCLES> <CELLS_PER_CYCLE>");
+ return;
+ }
+ // ((Log4JLogger)HBaseServer.LOG).getLogger().setLevel(Level.INFO);
+ // ((Log4JLogger)HBaseClient.LOG).getLogger().setLevel(Level.INFO);
+ int cycles = Integer.parseInt(args[0]);
+ int cellcount = Integer.parseInt(args[1]);
+ Configuration conf = HBaseConfiguration.create();
+ TestRpcServer rpcServer = new TestRpcServer();
+ HBaseClient client = new HBaseClient(conf, HConstants.CLUSTER_ID_DEFAULT);
+ KeyValue kv = KeyValueUtil.ensureKeyValue(CELL);
+ Put p = new Put(kv.getRow());
+ for (int i = 0; i < cellcount; i++) {
+ p.add(kv);
+ }
+ RowMutations rm = new RowMutations(kv.getRow());
+ rm.add(p);
+ try {
+ rpcServer.start();
+ InetSocketAddress address = rpcServer.getListenerAddress();
+ // Get any method name... just so it is not null
+ Method m = NothingProtocol.class.getMethod("doNothing");
+ long startTime = System.currentTimeMillis();
+ User user = User.getCurrent();
+ for (int i = 0; i < cycles; i++) {
+ List<CellScannable> cells = new ArrayList<CellScannable>();
+ // Message param = RequestConverter.buildMultiRequest(HConstants.EMPTY_BYTE_ARRAY, rm);
+ Message param = RequestConverter.buildNoDataMultiRequest(HConstants.EMPTY_BYTE_ARRAY, rm, cells);
+ CellScanner cellScanner = CellUtil.createCellScanner(cells);
+ if (i % 1000 == 0) {
+ LOG.info("" + i);
+ // Uncomment this for a thread dump every so often.
+ // ReflectionUtils.printThreadInfo(new PrintWriter(System.out),
+ // "Thread dump " + Thread.currentThread().getName());
+ }
+ Pair<Message, CellScanner> response =
+ client.call(m, param, cellScanner, address, NothingProtocol.class, user, 0);
+ /*
+ int count = 0;
+ while (p.getSecond().advance()) {
+ count++;
+ }
+ assertEquals(cells.size(), count);*/
+ }
+ LOG.info("Cycled " + cycles + " time(s) with " + cellcount + " cell(s) in " +
+ (System.currentTimeMillis() - startTime) + "ms");
+ } finally {
+ client.stop();
+ rpcServer.stop();
}
}
-}
\ No newline at end of file
+}
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestProtoBufRpc.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestProtoBufRpc.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestProtoBufRpc.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/ipc/TestProtoBufRpc.java Wed Mar 20 19:36:46 2013
@@ -22,13 +22,15 @@ import java.net.InetSocketAddress;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HConstants;
-import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.IpcProtocol;
+import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.EchoRequestProto;
import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.EchoResponseProto;
import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.EmptyRequestProto;
import org.apache.hadoop.hbase.ipc.protobuf.generated.TestProtos.EmptyResponseProto;
import org.apache.hadoop.hbase.ipc.protobuf.generated.TestRpcServiceProtos.TestProtobufRpcProto;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
import org.junit.Assert;
import org.junit.Test;
import org.junit.Before;
@@ -40,9 +42,9 @@ import com.google.protobuf.ServiceExcept
/**
* Test for testing protocol buffer based RPC mechanism.
- * This test depends on test.proto definition of types in
+ * This test depends on test.proto definition of types in
* hbase-server/src/test/protobuf/test.proto
- * and protobuf service definition from
+ * and protobuf service definition from
* hbase-server/src/test/protobuf/test_rpc_service.proto
*/
@Category(MediumTests.class)
@@ -53,8 +55,7 @@ public class TestProtoBufRpc {
private static Configuration conf;
private static RpcServer server;
- public interface TestRpcService
- extends TestProtobufRpcProto.BlockingInterface, IpcProtocol {
+ public interface TestRpcService extends TestProtobufRpcProto.BlockingInterface, IpcProtocol {
public long VERSION = 1;
}
@@ -83,18 +84,20 @@ public class TestProtoBufRpc {
@Before
public void setUp() throws IOException { // Setup server for both protocols
conf = new Configuration();
-
+ Logger log = Logger.getLogger("org.apache.hadoop.ipc.HBaseServer");
+ log.setLevel(Level.DEBUG);
+ log = Logger.getLogger("org.apache.hadoop.ipc.HBaseServer.trace");
+ log.setLevel(Level.TRACE);
// Create server side implementation
PBServerImpl serverImpl = new PBServerImpl();
// Get RPC server for server side implementation
server = HBaseServerRPC.getServer(TestRpcService.class,serverImpl,
- new Class[]{TestRpcService.class},
+ new Class[]{TestRpcService.class},
ADDRESS, PORT, 10, 10, true, conf, 0);
addr = server.getListenerAddress();
server.start();
}
-
-
+
@After
public void tearDown() throws Exception {
server.stop();
@@ -105,14 +108,13 @@ public class TestProtoBufRpc {
ProtobufRpcClientEngine clientEngine =
new ProtobufRpcClientEngine(conf, HConstants.CLUSTER_ID_DEFAULT);
try {
- TestRpcService client = clientEngine.getProxy(TestRpcService.class, addr, conf, 10000);
+ TestRpcService client = clientEngine.getProxy(TestRpcService.class, addr, conf, 100000);
// Test ping method
EmptyRequestProto emptyRequest = EmptyRequestProto.newBuilder().build();
client.ping(null, emptyRequest);
// Test echo method
- EchoRequestProto echoRequest = EchoRequestProto.newBuilder()
- .setMessage("hello").build();
+ EchoRequestProto echoRequest = EchoRequestProto.newBuilder().setMessage("hello").build();
EchoResponseProto echoResponse = client.echo(null, echoRequest);
Assert.assertEquals(echoResponse.getMessage(), "hello");
@@ -126,4 +128,4 @@ public class TestProtoBufRpc {
clientEngine.close();
}
}
-}
\ No newline at end of file
+}
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/protobuf/TestProtobufUtil.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/protobuf/TestProtobufUtil.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/protobuf/TestProtobufUtil.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/protobuf/TestProtobufUtil.java Wed Mar 20 19:36:46 2013
@@ -31,11 +31,11 @@ import org.apache.hadoop.hbase.client.Pu
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.protobuf.generated.ClientProtos;
import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Column;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Mutate;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Mutate.ColumnValue;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Mutate.ColumnValue.QualifierValue;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Mutate.DeleteType;
-import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Mutate.MutateType;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.ColumnValue;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.ColumnValue.QualifierValue;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.DeleteType;
+import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.MutationProto.MutationType;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -88,9 +88,9 @@ public class TestProtobufUtil {
*/
@Test
public void testAppend() throws IOException {
- Mutate.Builder mutateBuilder = Mutate.newBuilder();
+ MutationProto.Builder mutateBuilder = MutationProto.newBuilder();
mutateBuilder.setRow(ByteString.copyFromUtf8("row"));
- mutateBuilder.setMutateType(MutateType.APPEND);
+ mutateBuilder.setMutateType(MutationType.APPEND);
mutateBuilder.setTimestamp(111111);
ColumnValue.Builder valueBuilder = ColumnValue.newBuilder();
valueBuilder.setFamily(ByteString.copyFromUtf8("f1"));
@@ -103,29 +103,27 @@ public class TestProtobufUtil {
valueBuilder.addQualifierValue(qualifierBuilder.build());
mutateBuilder.addColumnValue(valueBuilder.build());
- Mutate proto = mutateBuilder.build();
+ MutationProto proto = mutateBuilder.build();
// default fields
assertEquals(true, proto.getWriteToWAL());
// set the default value for equal comparison
- mutateBuilder = Mutate.newBuilder(proto);
+ mutateBuilder = MutationProto.newBuilder(proto);
mutateBuilder.setWriteToWAL(true);
- Append append = ProtobufUtil.toAppend(proto);
+ Append append = ProtobufUtil.toAppend(proto, null);
// append always use the latest timestamp,
// add the timestamp to the original mutate
long timestamp = append.getTimeStamp();
mutateBuilder.setTimestamp(timestamp);
- for (ColumnValue.Builder column:
- mutateBuilder.getColumnValueBuilderList()) {
+ for (ColumnValue.Builder column: mutateBuilder.getColumnValueBuilderList()) {
for (QualifierValue.Builder qualifier:
column.getQualifierValueBuilderList()) {
qualifier.setTimestamp(timestamp);
}
}
- assertEquals(mutateBuilder.build(),
- ProtobufUtil.toMutate(MutateType.APPEND, append));
+ assertEquals(mutateBuilder.build(), ProtobufUtil.toMutation(MutationType.APPEND, append));
}
/**
@@ -135,9 +133,9 @@ public class TestProtobufUtil {
*/
@Test
public void testDelete() throws IOException {
- Mutate.Builder mutateBuilder = Mutate.newBuilder();
+ MutationProto.Builder mutateBuilder = MutationProto.newBuilder();
mutateBuilder.setRow(ByteString.copyFromUtf8("row"));
- mutateBuilder.setMutateType(MutateType.DELETE);
+ mutateBuilder.setMutateType(MutationType.DELETE);
mutateBuilder.setTimestamp(111111);
ColumnValue.Builder valueBuilder = ColumnValue.newBuilder();
valueBuilder.setFamily(ByteString.copyFromUtf8("f1"));
@@ -152,12 +150,12 @@ public class TestProtobufUtil {
valueBuilder.addQualifierValue(qualifierBuilder.build());
mutateBuilder.addColumnValue(valueBuilder.build());
- Mutate proto = mutateBuilder.build();
+ MutationProto proto = mutateBuilder.build();
// default fields
assertEquals(true, proto.getWriteToWAL());
// set the default value for equal comparison
- mutateBuilder = Mutate.newBuilder(proto);
+ mutateBuilder = MutationProto.newBuilder(proto);
mutateBuilder.setWriteToWAL(true);
Delete delete = ProtobufUtil.toDelete(proto);
@@ -172,7 +170,7 @@ public class TestProtobufUtil {
}
}
assertEquals(mutateBuilder.build(),
- ProtobufUtil.toMutate(MutateType.DELETE, delete));
+ ProtobufUtil.toMutation(MutationType.DELETE, delete));
}
/**
@@ -182,9 +180,9 @@ public class TestProtobufUtil {
*/
@Test
public void testIncrement() throws IOException {
- Mutate.Builder mutateBuilder = Mutate.newBuilder();
+ MutationProto.Builder mutateBuilder = MutationProto.newBuilder();
mutateBuilder.setRow(ByteString.copyFromUtf8("row"));
- mutateBuilder.setMutateType(MutateType.INCREMENT);
+ mutateBuilder.setMutateType(MutationType.INCREMENT);
ColumnValue.Builder valueBuilder = ColumnValue.newBuilder();
valueBuilder.setFamily(ByteString.copyFromUtf8("f1"));
QualifierValue.Builder qualifierBuilder = QualifierValue.newBuilder();
@@ -196,16 +194,16 @@ public class TestProtobufUtil {
valueBuilder.addQualifierValue(qualifierBuilder.build());
mutateBuilder.addColumnValue(valueBuilder.build());
- Mutate proto = mutateBuilder.build();
+ MutationProto proto = mutateBuilder.build();
// default fields
assertEquals(true, proto.getWriteToWAL());
// set the default value for equal comparison
- mutateBuilder = Mutate.newBuilder(proto);
+ mutateBuilder = MutationProto.newBuilder(proto);
mutateBuilder.setWriteToWAL(true);
- Increment increment = ProtobufUtil.toIncrement(proto);
- assertEquals(mutateBuilder.build(), ProtobufUtil.toMutate(increment));
+ Increment increment = ProtobufUtil.toIncrement(proto, null);
+ assertEquals(mutateBuilder.build(), ProtobufUtil.toMutation(increment));
}
/**
@@ -215,9 +213,9 @@ public class TestProtobufUtil {
*/
@Test
public void testPut() throws IOException {
- Mutate.Builder mutateBuilder = Mutate.newBuilder();
+ MutationProto.Builder mutateBuilder = MutationProto.newBuilder();
mutateBuilder.setRow(ByteString.copyFromUtf8("row"));
- mutateBuilder.setMutateType(MutateType.PUT);
+ mutateBuilder.setMutateType(MutationType.PUT);
mutateBuilder.setTimestamp(111111);
ColumnValue.Builder valueBuilder = ColumnValue.newBuilder();
valueBuilder.setFamily(ByteString.copyFromUtf8("f1"));
@@ -231,12 +229,12 @@ public class TestProtobufUtil {
valueBuilder.addQualifierValue(qualifierBuilder.build());
mutateBuilder.addColumnValue(valueBuilder.build());
- Mutate proto = mutateBuilder.build();
+ MutationProto proto = mutateBuilder.build();
// default fields
assertEquals(true, proto.getWriteToWAL());
// set the default value for equal comparison
- mutateBuilder = Mutate.newBuilder(proto);
+ mutateBuilder = MutationProto.newBuilder(proto);
mutateBuilder.setWriteToWAL(true);
Put put = ProtobufUtil.toPut(proto);
@@ -255,7 +253,7 @@ public class TestProtobufUtil {
}
}
assertEquals(mutateBuilder.build(),
- ProtobufUtil.toMutate(MutateType.PUT, put));
+ ProtobufUtil.toMutation(MutationType.PUT, put));
}
/**
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestClusterId.java Wed Mar 20 19:36:46 2013
@@ -18,23 +18,21 @@
*/
package org.apache.hadoop.hbase.regionserver;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseTestingUtility;
-import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.MediumTests;
import org.apache.hadoop.hbase.util.JVMClusterUtil;
import org.apache.hadoop.hbase.zookeeper.ZKClusterId;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
/**
* Test metrics incremented on region server operations.
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java Wed Mar 20 19:36:46 2013
@@ -22,37 +22,25 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import org.junit.Assert;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.hbase.util.Bytes;
-import org.apache.hadoop.hbase.KeyValue;
-import org.apache.hadoop.hbase.LargeTests;
-import org.apache.hadoop.hbase.MediumTests;
-import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseTestingUtility;
+import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.HTableDescriptor;
-import org.apache.hadoop.hbase.HColumnDescriptor;
+import org.apache.hadoop.hbase.LargeTests;
import org.apache.hadoop.hbase.MiniHBaseCluster;
-
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
-import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
-
-import org.apache.hadoop.hbase.filter.SingleColumnValueExcludeFilter;
-import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
-import org.apache.hadoop.hbase.filter.FilterList;
+import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.filter.CompareFilter;
-import org.apache.hadoop.hbase.filter.RowFilter;
-import org.apache.hadoop.hbase.filter.RegexStringComparator;
-
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-
+import org.apache.hadoop.hbase.filter.SingleColumnValueFilter;
+import org.apache.hadoop.hbase.util.Bytes;
import org.junit.Test;
import org.junit.experimental.categories.Category;
@@ -69,7 +57,6 @@ public class TestJoinedScanners {
private static final HBaseTestingUtility TEST_UTIL = new HBaseTestingUtility();
private static final String DIR = TEST_UTIL.getDataTestDir("TestJoinedScanners").toString();
- private static final byte[] tableName = Bytes.toBytes("testTable");
private static final byte[] cf_essential = Bytes.toBytes("essential");
private static final byte[] cf_joined = Bytes.toBytes("joined");
private static final byte[] col_name = Bytes.toBytes("a");
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java Wed Mar 20 19:36:46 2013
@@ -28,58 +28,56 @@ import org.apache.hadoop.hbase.HBaseConf
import org.apache.hadoop.hbase.HConstants;
import org.apache.hadoop.hbase.HRegionInfo;
import org.apache.hadoop.hbase.MediumTests;
-import org.apache.hadoop.hbase.protobuf.generated.AdminProtos.GetOnlineRegionRequest;
import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.Get;
import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.GetRequest;
import org.apache.hadoop.hbase.protobuf.generated.ClientProtos.ScanRequest;
import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.RegionSpecifier;
import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.RegionSpecifier.RegionSpecifierType;
-import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RpcRequestBody;
-import org.apache.hadoop.hbase.regionserver.HRegionServer.QosFunction;
-import org.junit.BeforeClass;
+import org.apache.hadoop.hbase.protobuf.generated.RPCProtos.RequestHeader;
+import org.apache.hadoop.hbase.util.Pair;
+import org.junit.Before;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.mockito.Mockito;
import com.google.protobuf.ByteString;
+import com.google.protobuf.Message;
/**
* Tests that verify certain RPCs get a higher QoS.
*/
@Category(MediumTests.class)
public class TestPriorityRpc {
- static HRegionServer regionServer = null;
- static QosFunction qosFunction = null;
- @BeforeClass
- public static void onetimeSetup() {
+ private HRegionServer regionServer = null;
+ private QosFunction qosFunction = null;
+
+ @Before
+ public void setup() {
Configuration conf = HBaseConfiguration.create();
- regionServer =
- HRegionServer.constructRegionServer(HRegionServer.class, conf);
+ regionServer = HRegionServer.constructRegionServer(HRegionServer.class, conf);
qosFunction = regionServer.getQosFunction();
}
+
@Test
public void testQosFunctionForMeta() throws IOException {
qosFunction = regionServer.getQosFunction();
- RpcRequestBody.Builder rpcRequestBuilder = RpcRequestBody.newBuilder();
+ RequestHeader.Builder headerBuilder = RequestHeader.newBuilder();
//create a rpc request that has references to META region and also
//uses one of the known argument classes (known argument classes are
//listed in HRegionServer.QosFunction.knownArgumentClasses)
- rpcRequestBuilder = RpcRequestBody.newBuilder();
- rpcRequestBuilder.setMethodName("foo");
+ headerBuilder.setMethodName("foo");
GetRequest.Builder getRequestBuilder = GetRequest.newBuilder();
RegionSpecifier.Builder regionSpecifierBuilder = RegionSpecifier.newBuilder();
regionSpecifierBuilder.setType(RegionSpecifierType.REGION_NAME);
- ByteString name =
- ByteString.copyFrom(HRegionInfo.FIRST_META_REGIONINFO.getRegionName());
+ ByteString name = ByteString.copyFrom(HRegionInfo.FIRST_META_REGIONINFO.getRegionName());
regionSpecifierBuilder.setValue(name);
RegionSpecifier regionSpecifier = regionSpecifierBuilder.build();
getRequestBuilder.setRegion(regionSpecifier);
Get.Builder getBuilder = Get.newBuilder();
getBuilder.setRow(ByteString.copyFrom("somerow".getBytes()));
getRequestBuilder.setGet(getBuilder.build());
- rpcRequestBuilder.setRequest(getRequestBuilder.build().toByteString());
- rpcRequestBuilder.setRequestClassName(GetRequest.class.getCanonicalName());
- RpcRequestBody rpcRequest = rpcRequestBuilder.build();
+ GetRequest getRequest = getRequestBuilder.build();
+ RequestHeader header = headerBuilder.build();
HRegion mockRegion = Mockito.mock(HRegion.class);
HRegionServer mockRS = Mockito.mock(HRegionServer.class);
HRegionInfo mockRegionInfo = Mockito.mock(HRegionInfo.class);
@@ -87,7 +85,8 @@ public class TestPriorityRpc {
Mockito.when(mockRegion.getRegionInfo()).thenReturn(mockRegionInfo);
Mockito.when(mockRegionInfo.isMetaTable()).thenReturn(true);
qosFunction.setRegionServer(mockRS);
- assertTrue (qosFunction.apply(rpcRequest) == HConstants.HIGH_QOS);
+ assertTrue (qosFunction.apply(new Pair<RequestHeader, Message>(header, getRequest)) ==
+ HConstants.HIGH_QOS);
}
@Test
@@ -96,51 +95,53 @@ public class TestPriorityRpc {
//known argument classes (it uses one random request class)
//(known argument classes are listed in
//HRegionServer.QosFunction.knownArgumentClasses)
- RpcRequestBody.Builder rpcRequestBuilder = RpcRequestBody.newBuilder();
- rpcRequestBuilder.setMethodName("foo");
- rpcRequestBuilder.setRequestClassName(GetOnlineRegionRequest.class.getCanonicalName());
- RpcRequestBody rpcRequest = rpcRequestBuilder.build();
+ RequestHeader.Builder headerBuilder = RequestHeader.newBuilder();
+ headerBuilder.setMethodName("foo");
+ RequestHeader header = headerBuilder.build();
QosFunction qosFunc = regionServer.getQosFunction();
- assertTrue (qosFunc.apply(rpcRequest) == HConstants.NORMAL_QOS);
+ assertTrue (qosFunc.apply(new Pair<RequestHeader, Message>(header, null)) ==
+ HConstants.NORMAL_QOS);
}
@Test
public void testQosFunctionForScanMethod() throws IOException {
- RpcRequestBody.Builder rpcRequestBuilder = RpcRequestBody.newBuilder();
- rpcRequestBuilder.setMethodName("scan");
+ RequestHeader.Builder headerBuilder = RequestHeader.newBuilder();
+ headerBuilder.setMethodName("scan");
+ RequestHeader header = headerBuilder.build();
//build an empty scan request
ScanRequest.Builder scanBuilder = ScanRequest.newBuilder();
- ByteString requestBody = scanBuilder.build().toByteString();
- rpcRequestBuilder.setRequest(requestBody);
- RpcRequestBody rpcRequest = rpcRequestBuilder.build();
- assertTrue (qosFunction.apply(rpcRequest) == HConstants.NORMAL_QOS);
+ ScanRequest scanRequest = scanBuilder.build();
+ HRegion mockRegion = Mockito.mock(HRegion.class);
+ HRegionServer mockRS = Mockito.mock(HRegionServer.class);
+ HRegionInfo mockRegionInfo = Mockito.mock(HRegionInfo.class);
+ Mockito.when(mockRS.getRegion((RegionSpecifier)Mockito.any())).thenReturn(mockRegion);
+ Mockito.when(mockRegion.getRegionInfo()).thenReturn(mockRegionInfo);
+ Mockito.when(mockRegionInfo.isMetaRegion()).thenReturn(false);
+ qosFunction.setRegionServer(mockRS);
+ int qos = qosFunction.apply(new Pair<RequestHeader, Message>(header, scanRequest));
+ assertTrue ("" + qos, qos == HConstants.NORMAL_QOS);
//build a scan request with scannerID
scanBuilder = ScanRequest.newBuilder();
scanBuilder.setScannerId(12345);
- requestBody = scanBuilder.build().toByteString();
- rpcRequestBuilder.setRequest(requestBody);
- rpcRequestBuilder.setRequestClassName(ScanRequest.class.getCanonicalName());
- rpcRequest = rpcRequestBuilder.build();
+ scanRequest = scanBuilder.build();
//mock out a high priority type handling and see the QoS returned
- HRegionServer mockRS = Mockito.mock(HRegionServer.class);
RegionScanner mockRegionScanner = Mockito.mock(RegionScanner.class);
- HRegionInfo mockRegionInfo = Mockito.mock(HRegionInfo.class);
- HRegion mockRegion = Mockito.mock(HRegion.class);
Mockito.when(mockRS.getScanner(12345)).thenReturn(mockRegionScanner);
Mockito.when(mockRegionScanner.getRegionInfo()).thenReturn(mockRegionInfo);
Mockito.when(mockRS.getRegion((RegionSpecifier)Mockito.any())).thenReturn(mockRegion);
Mockito.when(mockRegion.getRegionInfo()).thenReturn(mockRegionInfo);
- Mockito.when(mockRegionInfo.isMetaTable()).thenReturn(true);
+ Mockito.when(mockRegionInfo.isMetaRegion()).thenReturn(true);
qosFunction.setRegionServer(mockRS);
- assertTrue (qosFunction.apply(rpcRequest) == HConstants.HIGH_QOS);
+ assertTrue (qosFunction.apply(new Pair<RequestHeader, Message>(header, scanRequest)) ==
+ HConstants.HIGH_QOS);
//the same as above but with non-meta region
- Mockito.when(mockRegionInfo.isMetaTable()).thenReturn(false);
- assertTrue (qosFunction.apply(rpcRequest) == HConstants.NORMAL_QOS);
+ Mockito.when(mockRegionInfo.isMetaRegion()).thenReturn(false);
+ assertTrue (qosFunction.apply(new Pair<RequestHeader, Message>(header, scanRequest)) ==
+ HConstants.NORMAL_QOS);
}
-
}
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestFlushSnapshotFromClient.java Wed Mar 20 19:36:46 2013
@@ -29,6 +29,7 @@ import java.util.concurrent.CountDownLat
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.commons.logging.impl.Log4JLogger;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
@@ -39,8 +40,11 @@ import org.apache.hadoop.hbase.HTableDes
import org.apache.hadoop.hbase.LargeTests;
import org.apache.hadoop.hbase.exceptions.SnapshotCreationException;
import org.apache.hadoop.hbase.exceptions.TableNotFoundException;
+import org.apache.hadoop.hbase.ipc.HBaseClient;
+import org.apache.hadoop.hbase.ipc.HBaseServer;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.ScannerCallable;
import org.apache.hadoop.hbase.master.HMaster;
import org.apache.hadoop.hbase.master.snapshot.SnapshotManager;
import org.apache.hadoop.hbase.protobuf.generated.HBaseProtos.SnapshotDescription;
@@ -53,6 +57,7 @@ import org.apache.hadoop.hbase.util.FSTa
import org.apache.hadoop.hbase.util.FSUtils;
import org.apache.hadoop.hbase.util.HBaseFsck;
import org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;
+import org.apache.log4j.Level;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
@@ -83,6 +88,9 @@ public class TestFlushSnapshotFromClient
*/
@BeforeClass
public static void setupCluster() throws Exception {
+ ((Log4JLogger)HBaseServer.LOG).getLogger().setLevel(Level.ALL);
+ ((Log4JLogger)HBaseClient.LOG).getLogger().setLevel(Level.ALL);
+ ((Log4JLogger)ScannerCallable.LOG).getLogger().setLevel(Level.ALL);
setupConf(UTIL.getConfiguration());
UTIL.startMiniCluster(NUM_RS);
}
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServer.java Wed Mar 20 19:36:46 2013
@@ -248,6 +248,8 @@ public class TestThriftServer {
Thread.sleep(1000);
long lv = handler.get(tableAname, rowAname, columnAname, null).get(0).value.getLong();
+ // Wait on all increments being flushed
+ while (handler.coalescer.getQueueSize() != 0) Threads.sleep(10);
assertEquals((100 + (2 * numIncrements)), lv );
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java?rev=1459013&r1=1459012&r2=1459013&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerCmdLine.java Wed Mar 20 19:36:46 2013
@@ -35,7 +35,6 @@ import org.apache.hadoop.hbase.thrift.ge
import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
import org.apache.hadoop.hbase.util.EnvironmentEdgeManagerTestHelper;
import org.apache.hadoop.hbase.util.IncrementingEnvironmentEdge;
-import org.apache.hadoop.hbase.util.Threads;
import org.apache.thrift.protocol.TBinaryProtocol;
import org.apache.thrift.protocol.TCompactProtocol;
import org.apache.thrift.protocol.TProtocol;