You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ra...@apache.org on 2013/05/23 19:05:42 UTC
svn commit: r1485779 - in
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase:
PerformanceEvaluation.java util/LoadTestTool.java
Author: ramkrishna
Date: Thu May 23 17:05:42 2013
New Revision: 1485779
URL: http://svn.apache.org/r1485779
Log:
HBASE-8235-Adding inmemory CF attribute to LoadTest and PerformanceEvaluation tool (Ram)
Modified:
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java?rev=1485779&r1=1485778&r2=1485779&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java Thu May 23 17:05:42 2013
@@ -131,6 +131,7 @@ public class PerformanceEvaluation exten
private DataBlockEncoding blockEncoding = DataBlockEncoding.NONE;
private boolean flushCommits = true;
private boolean writeToWAL = true;
+ private boolean inMemoryCF = false;
private int presplitRegions = 0;
private static final Path PERF_EVAL_DIR = new Path("performance_evaluation");
@@ -510,6 +511,9 @@ public class PerformanceEvaluation exten
HColumnDescriptor family = new HColumnDescriptor(FAMILY_NAME);
family.setDataBlockEncoding(blockEncoding);
family.setCompressionType(compression);
+ if (inMemoryCF) {
+ family.setInMemory(true);
+ }
TABLE_DESCRIPTOR.addFamily(family);
}
return TABLE_DESCRIPTOR;
@@ -1292,6 +1296,9 @@ public class PerformanceEvaluation exten
System.err.println(" flushCommits Used to determine if the test should flush the table. Default: false");
System.err.println(" writeToWAL Set writeToWAL on puts. Default: True");
System.err.println(" presplit Create presplit table. Recommended for accurate perf analysis (see guide). Default: disabled");
+ System.err
+ .println(" inmemory Tries to keep the HFiles of the CF inmemory as far as possible. Not " +
+ "guaranteed that reads are always served from inmemory. Default: false");
System.err.println();
System.err.println(" Note: -D properties will be applied to the conf used. ");
System.err.println(" For example: ");
@@ -1396,7 +1403,13 @@ public class PerformanceEvaluation exten
this.presplitRegions = Integer.parseInt(cmd.substring(presplit.length()));
continue;
}
-
+
+ final String inMemory = "--inmemory=";
+ if (cmd.startsWith(inMemory)) {
+ this.inMemoryCF = Boolean.parseBoolean(cmd.substring(inMemory.length()));
+ continue;
+ }
+
Class<? extends Test> cmdClass = determineCommandClass(cmd);
if (cmdClass != null) {
getArgs(i + 1, args);
Modified: hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java?rev=1485779&r1=1485778&r2=1485779&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java (original)
+++ hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/LoadTestTool.java Thu May 23 17:05:42 2013
@@ -86,6 +86,10 @@ public class LoadTestTool extends Abstra
public static final String OPT_ENCODE_IN_CACHE_ONLY_USAGE =
"If this is specified, data blocks will only be encoded in block " +
"cache but not on disk";
+
+ public static final String OPT_INMEMORY = "in_memory";
+ public static final String OPT_USAGE_IN_MEMORY = "Tries to keep the HFiles of the CF " +
+ "inmemory as far as possible. Not guaranteed that reads are always served from inmemory";
private static final String OPT_KEY_WINDOW = "key_window";
private static final String OPT_WRITE = "write";
@@ -116,7 +120,7 @@ public class LoadTestTool extends Abstra
private boolean encodeInCacheOnly;
private Compression.Algorithm compressAlgo;
private BloomType bloomType;
-
+ private boolean inMemoryCF;
// Writer options
private int numWriterThreads = DEFAULT_NUM_THREADS;
private int minColsPerKey, maxColsPerKey;
@@ -177,6 +181,9 @@ public class LoadTestTool extends Abstra
columnDesc.setDataBlockEncoding(dataBlockEncodingAlgo);
columnDesc.setEncodeOnDisk(!encodeInCacheOnly);
}
+ if (inMemoryCF) {
+ columnDesc.setInMemory(inMemoryCF);
+ }
if (isNewCf) {
admin.addColumn(tableName, columnDesc);
} else {
@@ -208,6 +215,7 @@ public class LoadTestTool extends Abstra
addOptNoArg(OPT_MULTIPUT, "Whether to use multi-puts as opposed to " +
"separate puts for every column in a row");
addOptNoArg(OPT_ENCODE_IN_CACHE_ONLY, OPT_ENCODE_IN_CACHE_ONLY_USAGE);
+ addOptNoArg(OPT_INMEMORY, OPT_USAGE_IN_MEMORY);
addOptWithArg(OPT_NUM_KEYS, "The number of keys to read/write");
addOptWithArg(OPT_START_KEY, "The first key to read/write " +
@@ -318,6 +326,9 @@ public class LoadTestTool extends Abstra
String bloomStr = cmd.getOptionValue(OPT_BLOOM);
bloomType = bloomStr == null ? null :
BloomType.valueOf(bloomStr);
+
+ inMemoryCF = cmd.hasOption(OPT_INMEMORY);
+
}
public void initTestTable() throws IOException {