Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into
hbase_storage
Conflicts:
tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java
tajo-storage/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniAppender.java
tajo-storage/src/main/java/org/apache/tajo/storage/trevni/TrevniScanner.java
tajo-storage/src/main/resources/storage-default.xml
Project: http://git-wip-us.apache.org/repos/asf/tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/tajo/commit/337677be
Tree: http://git-wip-us.apache.org/repos/asf/tajo/tree/337677be
Diff: http://git-wip-us.apache.org/repos/asf/tajo/diff/337677be
Branch: refs/heads/hbase_storage
Commit: 337677be7f32cb4971ca5d9c80fbe1c57b12eb8a
Parents: 6937387 a56f8b5
Author: HyoungJun Kim <[email protected]>
Authored: Tue Nov 25 15:58:11 2014 +0900
Committer: HyoungJun Kim <[email protected]>
Committed: Tue Nov 25 15:58:11 2014 +0900
----------------------------------------------------------------------
CHANGES | 42 ++
.../org/apache/tajo/algebra/CreateTable.java | 4 +-
.../main/java/org/apache/tajo/algebra/Expr.java | 5 +-
.../org/apache/tajo/catalog/CatalogUtil.java | 2 -
.../tajo/catalog/json/FunctionAdapter.java | 5 +-
.../tajo/catalog/json/TableMetaAdapter.java | 12 +-
.../src/main/proto/CatalogProtos.proto | 3 +-
.../tajo/catalog/store/HCatalogStore.java | 3 +-
.../java/org/apache/tajo/cli/tsql/TajoCli.java | 5 +
tajo-common/pom.xml | 4 +
.../java/org/apache/tajo/conf/TajoConf.java | 2 +-
.../java/org/apache/tajo/datum/BlobDatum.java | 2 -
.../java/org/apache/tajo/datum/DateDatum.java | 20 +-
.../java/org/apache/tajo/datum/TextDatum.java | 5 +-
.../org/apache/tajo/datum/TimestampDatum.java | 11 +-
.../org/apache/tajo/json/CommonGsonHelper.java | 24 +-
.../org/apache/tajo/json/DataTypeAdapter.java | 2 +-
.../java/org/apache/tajo/json/DatumAdapter.java | 14 +-
.../java/org/apache/tajo/util/KeyValueSet.java | 6 +-
.../java/org/apache/tajo/util/NumberUtil.java | 700 +++++++++++++++++--
.../java/org/apache/tajo/util/StringUtils.java | 57 ++
.../java/org/apache/tajo/util/UnsafeUtil.java | 4 +-
.../org/apache/tajo/util/datetime/TimeMeta.java | 14 +-
.../org/apache/tajo/datum/TestDateDatum.java | 17 +-
.../org/apache/tajo/datum/TestTextDatum.java | 14 +
.../apache/tajo/datum/TestTimestampDatum.java | 17 +-
.../org/apache/tajo/util/TestStringUtil.java | 24 +
.../java/org/apache/tajo/master/TajoMaster.java | 29 +-
.../tajo/master/TajoMasterClientService.java | 32 +-
.../master/querymaster/QueryJobManager.java | 70 +-
.../master/querymaster/QueryMasterTask.java | 1 +
.../org/apache/tajo/net/CachedDNSResolver.java | 64 --
.../tajo/scheduler/SimpleFifoScheduler.java | 2 +-
.../apache/tajo/util/history/HistoryWriter.java | 2 +
.../tajo/webapp/QueryExecutorServlet.java | 24 +-
.../java/org/apache/tajo/worker/TajoWorker.java | 12 +-
.../main/java/org/apache/tajo/worker/Task.java | 4 +-
.../apache/tajo/worker/TaskRunnerManager.java | 7 +-
.../src/main/resources/webapps/admin/index.jsp | 42 +-
.../resources/webapps/admin/query_executor.jsp | 4 +-
.../org/apache/tajo/TajoTestingCluster.java | 20 +
.../org/apache/tajo/cli/tsql/TestTajoCli.java | 22 +-
.../org/apache/tajo/client/TestTajoClient.java | 9 +-
.../tajo/master/ha/TestHAServiceHDFSImpl.java | 41 +-
.../org/apache/tajo/worker/TestHistory.java | 6 +-
.../tajo/plan/serder/EvalNodeAdapter.java | 3 +-
.../tajo/plan/serder/LogicalNodeAdapter.java | 3 +-
tajo-project/pom.xml | 2 +-
tajo-storage/pom.xml | 11 +-
.../org/apache/tajo/storage/avro/AvroUtil.java | 35 +-
.../tajo/storage/text/DelimitedTextFile.java | 25 +-
.../text/TextFieldSerializerDeserializer.java | 56 +-
.../tajo/storage/trevni/TrevniAppender.java | 204 ------
.../tajo/storage/trevni/TrevniScanner.java | 193 -----
.../apache/tajo/tuple/offheap/HeapTuple.java | 7 +-
.../apache/tajo/tuple/offheap/UnSafeTuple.java | 7 +-
.../src/main/resources/storage-default.xml | 20 +-
.../java/org/apache/tajo/HttpFileServer.java | 84 +++
.../org/apache/tajo/HttpFileServerHandler.java | 184 +++++
.../tajo/HttpFileServerPipelineFactory.java | 54 ++
.../apache/tajo/storage/TestMergeScanner.java | 4 +-
.../org/apache/tajo/storage/TestStorages.java | 1 -
.../apache/tajo/storage/avro/TestAvroUtil.java | 108 +++
.../src/test/resources/storage-default.xml | 18 +-
.../tajo/pullserver/TajoPullServerService.java | 2 +-
65 files changed, 1636 insertions(+), 794 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/CHANGES
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-catalog/tajo-catalog-common/src/main/proto/CatalogProtos.proto
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-client/src/main/java/org/apache/tajo/cli/tsql/TajoCli.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
----------------------------------------------------------------------
diff --cc tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
index 47b42ec,6e585af..d015efe
--- a/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
@@@ -49,12 -49,11 +49,12 @@@ import org.apache.tajo.master.rm.TajoWo
import org.apache.tajo.master.rm.WorkerResourceManager;
import org.apache.tajo.master.session.SessionManager;
import org.apache.tajo.rpc.RpcChannelFactory;
+import org.apache.tajo.storage.FileStorageManager;
import org.apache.tajo.storage.StorageManager;
import org.apache.tajo.util.*;
- import org.apache.tajo.util.metrics.TajoSystemMetrics;
import org.apache.tajo.util.history.HistoryReader;
import org.apache.tajo.util.history.HistoryWriter;
+ import org.apache.tajo.util.metrics.TajoSystemMetrics;
import org.apache.tajo.webapp.QueryExecutorServlet;
import org.apache.tajo.webapp.StaticHttpServer;
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-core/src/main/java/org/apache/tajo/master/TajoMasterClientService.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java
----------------------------------------------------------------------
diff --cc
tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java
index 6a55de6,5cf3df5..6b61d04
---
a/tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java
+++
b/tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMasterTask.java
@@@ -361,29 -354,8 +361,30 @@@ public class QueryMasterTask extends Co
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(systemConf);
Expr expr = JsonHelper.fromJson(jsonExpr, Expr.class);
+ jsonExpr = null; // remove the possible OOM
- LogicalPlan plan = planner.createPlan(queryContext, expr);
+ plan = planner.createPlan(queryContext, expr);
+
+ StoreType storeType = PlannerUtil.getStoreType(plan);
+ if (storeType != null) {
+ sm = StorageManager.getStorageManager(systemConf, storeType);
+ StorageProperty storageProperty = sm.getStorageProperty();
+ if (storageProperty.isSortedInsert()) {
+ String tableName = PlannerUtil.getStoreTableName(plan);
+ LogicalRootNode rootNode = plan.getRootBlock().getRoot();
+ TableDesc tableDesc = PlannerUtil.getTableDesc(catalog,
rootNode.getChild());
+ if (tableDesc == null) {
+ throw new VerifyException("Can't get table meta data from
catalog: " + tableName);
+ }
+ List<RewriteRule> storageSpecifiedRewriteRules = sm.getRewriteRules(
+ getQueryTaskContext().getQueryContext(), tableDesc);
+ if (storageSpecifiedRewriteRules != null) {
+ for (RewriteRule eachRule: storageSpecifiedRewriteRules) {
+ optimizer.addRuleAfterToJoinOpt(eachRule);
+ }
+ }
+ }
+ }
+
optimizer.optimize(queryContext, plan);
GlobalEngine.DistributedQueryHookManager hookManager = new
GlobalEngine.DistributedQueryHookManager();
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-project/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-storage/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-storage/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
----------------------------------------------------------------------
diff --cc
tajo-storage/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
index 29c6987,68d89e7..a337509
---
a/tajo-storage/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
+++
b/tajo-storage/src/main/java/org/apache/tajo/storage/text/DelimitedTextFile.java
@@@ -32,8 -32,6 +32,7 @@@ import org.apache.hadoop.io.compress.Co
import org.apache.hadoop.io.compress.CompressionCodecFactory;
import org.apache.hadoop.io.compress.CompressionOutputStream;
import org.apache.hadoop.io.compress.Compressor;
- import org.apache.hadoop.util.ReflectionUtils;
+import org.apache.tajo.QueryUnitAttemptId;
import org.apache.tajo.catalog.Schema;
import org.apache.tajo.catalog.TableMeta;
import org.apache.tajo.catalog.statistics.TableStats;
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-storage/src/main/resources/storage-default.xml
----------------------------------------------------------------------
diff --cc tajo-storage/src/main/resources/storage-default.xml
index 0f05536,064f250..85e5f41
--- a/tajo-storage/src/main/resources/storage-default.xml
+++ b/tajo-storage/src/main/resources/storage-default.xml
@@@ -35,7 -35,7 +35,7 @@@
<!--- Registered Scanner Handler -->
<property>
<name>tajo.storage.scanner-handler</name>
-
<value>textfile,csv,raw,rcfile,row,trevni,parquet,sequencefile,avro,hbase</value>
- <value>textfile,csv,raw,rcfile,row,parquet,sequencefile,avro</value>
++ <value>textfile,csv,raw,rcfile,row,parquet,sequencefile,avro,hbase</value>
</property>
<!--- Fragment Class Configurations -->
@@@ -134,9 -116,9 +125,9 @@@
<!--- Appender Handler -->
<property>
<name>tajo.storage.appender-handler</name>
-
<value>textfile,csv,raw,rcfile,row,trevni,parquet,sequencefile,avro,hbase,hfile</value>
- <value>textfile,csv,raw,rcfile,row,parquet,sequencefile,avro</value>
++ <value>textfile,csv,raw,rcfile,row,parquet,sequencefile,avro,hbase</value>
</property>
-
+
<property>
<name>tajo.storage.appender-handler.textfile.class</name>
<value>org.apache.tajo.storage.text.DelimitedTextFile$DelimitedTextFileAppender</value>
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-storage/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
----------------------------------------------------------------------
diff --cc
tajo-storage/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
index b70bba9,e6714b5..cc4aa51
--- a/tajo-storage/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
+++ b/tajo-storage/src/test/java/org/apache/tajo/storage/TestMergeScanner.java
@@@ -93,10 -91,10 +92,10 @@@ public class TestMergeScanner
public void setup() throws Exception {
conf = new TajoConf();
conf.setVar(ConfVars.ROOT_DIR, TEST_PATH);
- conf.setStrings("tajo.storage.projectable-scanner", "rcfile", "trevni",
"parquet", "avro");
+ conf.setStrings("tajo.storage.projectable-scanner", "rcfile", "parquet",
"avro");
testDir = CommonTestingUtil.getTestDir(TEST_PATH);
fs = testDir.getFileSystem(conf);
- sm = StorageManager.getStorageManager(conf, testDir);
+ sm = StorageManager.getFileStorageManager(conf, testDir);
}
@Test
http://git-wip-us.apache.org/repos/asf/tajo/blob/337677be/tajo-storage/src/test/java/org/apache/tajo/storage/TestStorages.java
----------------------------------------------------------------------