You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by jd...@apache.org on 2013/08/28 21:47:02 UTC

svn commit: r1518342 - /hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java

Author: jdcryans
Date: Wed Aug 28 19:47:02 2013
New Revision: 1518342

URL: http://svn.apache.org/r1518342
Log:
HBASE-9330 Refactor PE to create HTable the correct way

Modified:
    hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java

Modified: hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java?rev=1518342&r1=1518341&r2=1518342&view=diff
==============================================================================
--- hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java (original)
+++ hbase/branches/0.95/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java Wed Aug 28 19:47:02 2013
@@ -44,7 +44,10 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.client.Get;
 import org.apache.hadoop.hbase.client.HBaseAdmin;
+import org.apache.hadoop.hbase.client.HConnection;
+import org.apache.hadoop.hbase.client.HConnectionManager;
 import org.apache.hadoop.hbase.client.HTable;
+import org.apache.hadoop.hbase.client.HTableInterface;
 import org.apache.hadoop.hbase.client.Put;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.ResultScanner;
@@ -131,6 +134,7 @@ public class PerformanceEvaluation exten
   private boolean writeToWAL = true;
   private boolean inMemoryCF = false;
   private int presplitRegions = 0;
+  private HConnection connection;
 
   private static final Path PERF_EVAL_DIR = new Path("performance_evaluation");
   /**
@@ -460,7 +464,7 @@ public class PerformanceEvaluation exten
       long elapsedTime = this.pe.runOneClient(this.cmd, value.getStartRow(),
                                   value.getRows(), value.getTotalRows(),
                                   value.isFlushCommits(), value.isWriteToWAL(),
-                                  status);
+                                  HConnectionManager.createConnection(context.getConfiguration()), status);
       // Collect how much time the thing took. Report as map output and
       // to the ELAPSED_TIME counter.
       context.getCounter(Counter.ELAPSED_TIME).increment(elapsedTime);
@@ -567,6 +571,7 @@ public class PerformanceEvaluation exten
     final Compression.Algorithm compression = this.compression;
     final boolean writeToWal = this.writeToWAL;
     final int preSplitRegions = this.presplitRegions;
+    final HConnection connection = HConnectionManager.createConnection(getConf());
     for (int i = 0; i < this.N; i++) {
       final int index = i;
       Thread t = new Thread ("TestClient-" + i) {
@@ -581,10 +586,11 @@ public class PerformanceEvaluation exten
           pe.writeToWAL = writeToWal;
           pe.presplitRegions = preSplitRegions;
           pe.N = N;
+          pe.connection = connection;
           try {
             long elapsedTime = pe.runOneClient(cmd, index * perClientRows,
                perClientRows, R,
-                flushCommits, writeToWAL, new Status() {
+                flushCommits, writeToWAL, connection, new Status() {
                   public void setStatus(final String msg) throws IOException {
                     LOG.info("client-" + getName() + " " + msg);
                   }
@@ -747,13 +753,14 @@ public class PerformanceEvaluation exten
     private TableName tableName;
     private boolean flushCommits;
     private boolean writeToWAL = true;
+    private HConnection connection;
 
     TestOptions() {
     }
 
     TestOptions(int startRow, int perClientRunRows, int totalRows,
                 int numClientThreads, TableName tableName,
-                boolean flushCommits, boolean writeToWAL) {
+                boolean flushCommits, boolean writeToWAL, HConnection connection) {
       this.startRow = startRow;
       this.perClientRunRows = perClientRunRows;
       this.totalRows = totalRows;
@@ -761,6 +768,7 @@ public class PerformanceEvaluation exten
       this.tableName = tableName;
       this.flushCommits = flushCommits;
       this.writeToWAL = writeToWAL;
+      this.connection = connection;
     }
 
     public int getStartRow() {
@@ -790,6 +798,10 @@ public class PerformanceEvaluation exten
     public boolean isWriteToWAL() {
       return writeToWAL;
     }
+
+    public HConnection getConnection() {
+      return connection;
+    }
   }
 
   /*
@@ -811,10 +823,11 @@ public class PerformanceEvaluation exten
     protected final int totalRows;
     private final Status status;
     protected TableName tableName;
-    protected HTable table;
+    protected HTableInterface table;
     protected volatile Configuration conf;
     protected boolean flushCommits;
     protected boolean writeToWAL;
+    protected HConnection connection;
 
     /**
      * Note that all subclasses of this class must provide a public contructor
@@ -831,6 +844,7 @@ public class PerformanceEvaluation exten
       this.conf = conf;
       this.flushCommits = options.isFlushCommits();
       this.writeToWAL = options.isWriteToWAL();
+      this.connection = options.getConnection();
     }
 
     private String generateStatus(final int sr, final int i, final int lr) {
@@ -843,9 +857,8 @@ public class PerformanceEvaluation exten
     }
 
     void testSetup() throws IOException {
-      this.table = new HTable(conf, tableName);
+      this.table = connection.getTable(tableName);
       this.table.setAutoFlush(false);
-      this.table.setScannerCaching(30);
     }
 
     void testTakedown() throws IOException {
@@ -1063,6 +1076,7 @@ public class PerformanceEvaluation exten
     void testRow(final int i) throws IOException {
       if (this.testScanner == null) {
         Scan scan = new Scan(format(this.startRow));
+        scan.setCaching(30);
         scan.addColumn(FAMILY_NAME, QUALIFIER_NAME);
         this.testScanner = table.getScanner(scan);
       }
@@ -1184,7 +1198,7 @@ public class PerformanceEvaluation exten
 
   long runOneClient(final Class<? extends Test> cmd, final int startRow,
                     final int perClientRunRows, final int totalRows,
-                    boolean flushCommits, boolean writeToWAL,
+                    boolean flushCommits, boolean writeToWAL, HConnection connection,
                     final Status status)
   throws IOException {
     status.setStatus("Start " + cmd + " at offset " + startRow + " for " +
@@ -1192,7 +1206,7 @@ public class PerformanceEvaluation exten
     long totalElapsedTime = 0;
 
     TestOptions options = new TestOptions(startRow, perClientRunRows,
-        totalRows, N, tableName, flushCommits, writeToWAL);
+        totalRows, N, tableName, flushCommits, writeToWAL, connection);
     final Test t;
     try {
       Constructor<? extends Test> constructor = cmd.getDeclaredConstructor(
@@ -1224,7 +1238,7 @@ public class PerformanceEvaluation exten
     try {
       admin = new HBaseAdmin(getConf());
       checkTable(admin);
-      runOneClient(cmd, 0, this.R, this.R, this.flushCommits, this.writeToWAL,
+      runOneClient(cmd, 0, this.R, this.R, this.flushCommits, this.writeToWAL, this.connection,
         status);
     } catch (Exception e) {
       LOG.error("Failed", e);
@@ -1407,6 +1421,8 @@ public class PerformanceEvaluation exten
           this.inMemoryCF = Boolean.parseBoolean(cmd.substring(inMemory.length()));
           continue;
         }
+
+        this.connection = HConnectionManager.createConnection(getConf());
         
         Class<? extends Test> cmdClass = determineCommandClass(cmd);
         if (cmdClass != null) {