diff --git a/tests/comparisonTest/opentsdb/opentsdbtest/pom.xml b/tests/comparisonTest/opentsdb/opentsdbtest/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b4f29bea5dff95d2a189fda27aba5cb479a568c9
--- /dev/null
+++ b/tests/comparisonTest/opentsdb/opentsdbtest/pom.xml
@@ -0,0 +1,295 @@
+
+
+
+ 4.0.0
+
+ com.opentsdb.test
+ opentsdbtest
+ 1.0-SNAPSHOT
+ jar
+
+
+
+
+ org.apache.maven.plugins
+ maven-plugins
+ 30
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.0.0
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.1.0
+
+
+
+ OpentsdbTest
+
+
+
+ jar-with-dependencies
+
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 2.3.2
+
+ 8
+ 8
+
+
+
+
+
+
+ opentsdbtest
+
+ http://www.example.com
+
+
+ UTF-8
+ 1.8
+ 1.8
+
+
+
+
+ net.opentsdb
+ opentsdb_gwt_theme
+ 1.0.0
+
+
+
+ net.opentsdb
+ opentsdb
+ 2.4.0
+
+
+
+ junit
+ junit
+ 4.11
+ test
+
+
+
+ com.google.guava
+ guava
+ 18.0
+
+
+
+ com.google.gwt
+ gwt-user
+ 2.6.0
+
+
+
+ com.fasterxml.jackson.core
+ jackson-annotations
+ 2.9.5
+
+
+
+ com.fasterxml.jackson.core
+ jackson-core
+ 2.9.5
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ 2.9.5
+
+
+
+ io.netty
+ netty
+ 3.10.6.Final
+
+
+
+ com.stumbleupon
+ async
+ 1.4.0
+
+
+
+ org.apache.commons
+ commons-math3
+ 3.4.1
+
+
+ org.apache.commons
+ commons-jexl
+ 2.1.1
+
+
+ org.apache.commons
+ commons-lang3
+ 3.7
+
+
+ org.apache.commons
+ commons-collections4
+ 4.3
+
+
+
+ org.apache.httpcomponents
+ httpasyncclient
+ 4.1.3
+
+
+ org.apache.httpcomponents
+ httpclient
+ 4.5.4
+
+
+
+ org.jgrapht
+ jgrapht-core
+ 0.9.1
+
+
+
+ com.esotericsoftware.kryo
+ kryo
+ 2.21.1
+
+
+
+ com.datastax.oss
+ java-driver-core
+ 4.1.0
+
+
+
+ com.datastax.oss
+ java-driver-query-builder
+ 4.1.0
+
+
+
+ com.datastax.oss
+ java-driver-mapper-runtime
+ 4.1.0
+
+
+
+ commons-io
+ commons-io
+ 2.4
+
+
+
+ org.slf4j
+ slf4j-api
+ 1.7.25
+
+
+ org.slf4j
+ slf4j-log4j12
+ 1.7.21
+
+
+ org.slf4j
+ log4j-over-slf4j
+ 1.7.7
+
+
+
+ org.apache.logging.log4j
+ log4j-1.2-api
+ 2.8.2
+
+
+
+ ch.qos.logback
+ logback-core
+ 1.0.13
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.0.13
+
+
+
+ org.projectlombok
+ lombok
+ 1.18.0
+
+
+
+ com.github.eulery
+ opentsdb-java-sdk
+ 1.1.4
+
+
+
+
+
+
+
+ hbase
+
+ true
+
+
+
+
+ org.hbase
+ asynchbase
+ 1.8.2
+
+
+
+ org.apache.zookeeper
+ zookeeper
+ 3.4.6
+
+
+ log4j
+ log4j
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+ jline
+ jline
+
+
+ junit
+ junit
+
+
+
+
+
+
+
+
+
diff --git a/tests/comparisonTest/opentsdb/opentsdbtest/src/main/java/com/opentsdb/test/OpentsdbTest.java b/tests/comparisonTest/opentsdb/opentsdbtest/src/main/java/com/opentsdb/test/OpentsdbTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..e1a20dfb4908182e3471cac834c57b477b124998
--- /dev/null
+++ b/tests/comparisonTest/opentsdb/opentsdbtest/src/main/java/com/opentsdb/test/OpentsdbTest.java
@@ -0,0 +1,468 @@
+import com.stumbleupon.async.Callback;
+import com.stumbleupon.async.Deferred;
+import lombok.extern.slf4j.Slf4j;
+
+import net.opentsdb.core.TSDB;
+import net.opentsdb.uid.NoSuchUniqueName;
+import net.opentsdb.uid.UniqueId.UniqueIdType;
+import net.opentsdb.utils.Config;
+
+import java.net.URL;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.ResponseHandler;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.concurrent.FutureCallback;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
+
+
+import java.io.BufferedWriter;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.FileReader;
+import java.io.IOException;
+import java.nio.charset.Charset;
+import java.text.DecimalFormat;
+import java.util.Random;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.LinkedHashMap;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.*;
+import java.math.*;
+import java.lang.reflect.Method;
+
+
+public class OpentsdbTest{
+
+ //static { System.setProperty("logback.configurationFile", "/home/ubuntu/fang/opentsdb/opentsdbtest/logback.xml");}
+ static { System.setProperty("logback.configurationFile", "/etc/opentsdb/logback.xml");}
+
+ public static void main(String args[]) {
+ // begin to parse argument
+ String datadir = "/home/ubuntu/testdata";
+ String sqlchoice = "q1";
+ int numOfRows = 1000000;
+ int numOfFiles = 0;
+ int numOfClients = 1;
+ int rowsPerRequest = 1;
+ for (int i = 0; i < args.length; ++i) {
+ if (args[i].equalsIgnoreCase("-dataDir")) {
+ if (i < args.length - 1) {
+ datadir = args[++i];
+ }
+ } else if (args[i].equalsIgnoreCase("-numofFiles")) {
+ if (i < args.length - 1) {
+ numOfFiles = Integer.parseInt(args[++i]);
+ }
+ } else if (args[i].equalsIgnoreCase("-rowsPerRequest")) {
+ if (i < args.length - 1) {
+ rowsPerRequest = Integer.parseInt(args[++i]);
+ }
+ } else if (args[i].equalsIgnoreCase("-writeClients")) {
+ if (i < args.length - 1) {
+ numOfClients = Integer.parseInt(args[++i]);
+ }
+ } else if (args[i].equalsIgnoreCase("-sql")) {
+ sqlchoice = args[++i];
+ }
+ }
+ System.out.println("parameters:\n");
+
+
+ if (numOfFiles >0) {
+ // write data
+ System.out.printf("----dataDir:%s\n", datadir);
+ System.out.printf("----numOfFiles:%d\n", numOfFiles);
+ System.out.printf("----numOfClients:%d\n", numOfClients);
+ System.out.printf("----rowsPerRequest:%d\n", rowsPerRequest);
+ try {
+ // begin to insert data
+ System.out.printf("----begin to insert data\n");
+ long startTime = System.currentTimeMillis();
+ int a = numOfFiles/numOfClients;
+ int b = numOfFiles%numOfClients;
+ int last = 0;
+
+ WriteThread[] writethreads = new WriteThread[numOfClients];
+ int[] wargs = new int[2]; // data file start, end
+ wargs[0] = numOfRows; //rows to be read from each file
+ wargs[1] = rowsPerRequest;
+ int fstart =0;
+ int fend =0;
+ for (int i = 0; i
+
+
+
+
+
+
+
+ %date [%thread] %-5level %logger{80} - %msg%n
+
+
+
+
+ UTF-8
+
+ ${logbase}%d{yyyy-MM-dd}.log.html
+ ${logbase}.%d{yyyy-MM-dd}.log.html.zip
+
+
+
+ 2MB
+
+
+ %date%level%thread%10logger%file%line%msg
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+