Uploaded image for project: 'Tajo'
  1. Tajo
  2. TAJO-1991

Tablespace::getVolume should take filter predication

    Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.12.0, 0.11.1
    • Component/s: Storage
    • Labels:
      None

      Description

      Tablespace::getVolume plays a role to guess or compute exactly the table volume. This volume result is usually used for join optimization. But, currently Tablespace::getVolume just returns whole table volume. It may cause sub optimal join order, especially in partitioned tables or indexable tables like HBase.

      The main objective of this patch is to improve getVolume method to take filter predicates and return more reasonable volume sizes according to predicates.

        Issue Links

          Activity

          Hide
          jihoonson Jihoon Son added a comment -

          +1 for this ticket. It will be helpful for more precise query optimization.

          Show
          jihoonson Jihoon Son added a comment - +1 for this ticket. It will be helpful for more precise query optimization.
          Hide
          githubbot ASF GitHub Bot added a comment -

          GitHub user hyunsik opened a pull request:

          https://github.com/apache/tajo/pull/901

          TAJO-1991: Tablespace::getVolume should take filter predication.

          See https://issues.apache.org/jira/browse/TAJO-1991.

          Some code uses guava's Optional. This is because we need to avoid forcing Java 8 to third-party storage handlers.

          You can merge this pull request into a Git repository by running:

          $ git pull https://github.com/hyunsik/tajo TAJO-1991

          Alternatively you can review and apply these changes as the patch at:

          https://github.com/apache/tajo/pull/901.patch

          To close this pull request, make a commit to your master/trunk branch
          with (at least) the following in the commit message:

          This closes #901


          commit d967eeb38039fce1f100adb361c58ef9dd7743da
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-12-03T06:15:44Z

          TAJO-2005: Add TableStatUpdateRewriter.

          commit db6a590890b03527658bd6b5876b2234781eb6fe
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-12-03T07:49:52Z

          Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-2005

          commit a16aeff172eb8e61bb57ac120619d81f42069a0d
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-12-03T07:50:05Z

          TAJO-2007: By default, Optimizer should use the table volume in TableStat.

          commit e70a04d4561314232f68c8361e34f61e9f260a25
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-12-03T07:57:07Z

          Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-2007

          commit 60b714bde6a7ddbcb238e8e39095f55f283eb589
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-12-03T08:00:09Z

          Removed unused parameters.

          commit 82e71774095d634bebec54187051f139aa06d456
          Author: Hyunsik Choi <hyunsik@apache.org>
          Date: 2015-12-03T08:17:40Z

          TAJO-1991: Tablespace::getVolume should take filter predication.


          Show
          githubbot ASF GitHub Bot added a comment - GitHub user hyunsik opened a pull request: https://github.com/apache/tajo/pull/901 TAJO-1991 : Tablespace::getVolume should take filter predication. See https://issues.apache.org/jira/browse/TAJO-1991 . Some code uses guava's Optional. This is because we need to avoid forcing Java 8 to third-party storage handlers. You can merge this pull request into a Git repository by running: $ git pull https://github.com/hyunsik/tajo TAJO-1991 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tajo/pull/901.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #901 commit d967eeb38039fce1f100adb361c58ef9dd7743da Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-12-03T06:15:44Z TAJO-2005 : Add TableStatUpdateRewriter. commit db6a590890b03527658bd6b5876b2234781eb6fe Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-12-03T07:49:52Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-2005 commit a16aeff172eb8e61bb57ac120619d81f42069a0d Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-12-03T07:50:05Z TAJO-2007 : By default, Optimizer should use the table volume in TableStat. commit e70a04d4561314232f68c8361e34f61e9f260a25 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-12-03T07:57:07Z Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tajo into TAJO-2007 commit 60b714bde6a7ddbcb238e8e39095f55f283eb589 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-12-03T08:00:09Z Removed unused parameters. commit 82e71774095d634bebec54187051f139aa06d456 Author: Hyunsik Choi <hyunsik@apache.org> Date: 2015-12-03T08:17:40Z TAJO-1991 : Tablespace::getVolume should take filter predication.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jinossy commented on a diff in the pull request:

          https://github.com/apache/tajo/pull/901#discussion_r46641076

          — Diff: tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java —
          @@ -0,0 +1,124 @@
          +/*
          + * Licensed to the Apache Software Foundation (ASF) under one
          + * or more contributor license agreements. See the NOTICE file
          + * distributed with this work for additional information
          + * regarding copyright ownership. The ASF licenses this file
          + * to you under the Apache License, Version 2.0 (the
          + * "License"); you may not use this file except in compliance
          + * with the License. You may obtain a copy of the License at
          + *
          + * http://www.apache.org/licenses/LICENSE-2.0
          + *
          + * Unless required by applicable law or agreed to in writing, software
          + * distributed under the License is distributed on an "AS IS" BASIS,
          + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
          + * See the License for the specific language governing permissions and
          + * limitations under the License.
          + */
          +
          +package org.apache.tajo.plan.rewrite;
          +
          +import org.apache.commons.logging.Log;
          +import org.apache.commons.logging.LogFactory;
          +import org.apache.tajo.OverridableConf;
          +import org.apache.tajo.SessionVars;
          +import org.apache.tajo.catalog.TableDesc;
          +import org.apache.tajo.catalog.statistics.TableStats;
          +import org.apache.tajo.exception.TajoException;
          +import org.apache.tajo.exception.UnsupportedException;
          +import org.apache.tajo.plan.LogicalPlan;
          +import org.apache.tajo.plan.StorageService;
          +import org.apache.tajo.plan.expr.EvalNode;
          +import org.apache.tajo.plan.logical.LogicalNode;
          +import org.apache.tajo.plan.logical.ScanNode;
          +import org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor;
          +import org.apache.tajo.unit.StorageUnit;
          +
          +import java.util.Optional;
          +import java.util.Stack;
          +
          +public class TableStatUpdateRewriter implements LogicalPlanRewriteRule {
          + private static final Log LOG = LogFactory.getLog(TableStatUpdateRewriter.class);
          +
          + private static final String NAME = "Table Stat Updater";
          +
          + @Override
          + public String getName()

          { + return NAME; + }

          +
          + @Override
          + public boolean isEligible(LogicalPlanRewriteRuleContext context)

          { + return true; + }

          +
          + @Override
          + public LogicalPlan rewrite(LogicalPlanRewriteRuleContext context) throws TajoException

          { + LogicalPlan plan = context.getPlan(); + LogicalPlan.QueryBlock rootBlock = plan.getRootBlock(); + + Rewriter r = new Rewriter(context.getQueryContext(), context.getStorage()); + r.visit(rootBlock, plan, rootBlock, rootBlock.getRoot(), new Stack<>()); + return plan; + }

          +
          + private final class Rewriter extends BasicLogicalPlanVisitor<Object, Object> {
          + private final OverridableConf conf;
          + private final StorageService storage;
          +
          +
          + private Rewriter(OverridableConf conf, StorageService storage)

          { + this.conf = conf; + this.storage = storage; + }

          +
          + @Override
          + public Object visitScan(Object object, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode scanNode,
          + Stack<LogicalNode> stack) throws TajoException {
          + final TableDesc table = scanNode.getTableDesc();
          +
          + if (!isVirtual(table)) {
          + final TableStats stats = getTableStat(table);
          + final long tableSize = stats.getNumBytes();
          + final Optional<EvalNode> filter = scanNode.hasQual() ? Optional.of(scanNode.getQual()) : Optional.empty();
          +
          + // If USE_TABLE_VOLUME is set, we will update the table volume through a storage handler.
          + // In addition, if the table size is zero, we will update too.
          + // It is a good workaround to avoid suboptimal join orders without cheap cost.
          + if (conf.getBool(SessionVars.USE_TABLE_VOLUME) || tableSize == 0)

          { + table.getStats().setNumBytes(getTableVolume(table, filter)); + }

          + }
          +
          + return scanNode;
          + }
          +
          + private TableStats getTableStat(TableDesc table) {
          + TableStats stats;
          + if (table.getStats() == null)

          { + stats = new TableStats(); + table.setStats(stats); + }

          else

          { + stats = table.getStats(); + }

          + return stats;
          + }
          +
          + private boolean isVirtual(TableDesc table)

          { + return table.getMeta().getDataFormat().equals("SYSTEM") || table.getMeta().getDataFormat().equals("FAKEFILE"); + }

          +
          + private long getTableVolume(TableDesc table, Optional<EvalNode> filter) {
          + try {
          + if (table.getStats() != null)

          { + return storage.getTableVolumn(table.getUri(), filter); + }

          + } catch (UnsupportedException t)

          { + LOG.warn(table.getName() + " does not support Tablespace::getTableVolume()"); + // By default, return 1GB to avoid a single task + }

          +
          + return StorageUnit.GB;
          — End diff –

          How about the configurable value ?

          Show
          githubbot ASF GitHub Bot added a comment - Github user jinossy commented on a diff in the pull request: https://github.com/apache/tajo/pull/901#discussion_r46641076 — Diff: tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java — @@ -0,0 +1,124 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.tajo.plan.rewrite; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tajo.OverridableConf; +import org.apache.tajo.SessionVars; +import org.apache.tajo.catalog.TableDesc; +import org.apache.tajo.catalog.statistics.TableStats; +import org.apache.tajo.exception.TajoException; +import org.apache.tajo.exception.UnsupportedException; +import org.apache.tajo.plan.LogicalPlan; +import org.apache.tajo.plan.StorageService; +import org.apache.tajo.plan.expr.EvalNode; +import org.apache.tajo.plan.logical.LogicalNode; +import org.apache.tajo.plan.logical.ScanNode; +import org.apache.tajo.plan.visitor.BasicLogicalPlanVisitor; +import org.apache.tajo.unit.StorageUnit; + +import java.util.Optional; +import java.util.Stack; + +public class TableStatUpdateRewriter implements LogicalPlanRewriteRule { + private static final Log LOG = LogFactory.getLog(TableStatUpdateRewriter.class); + + private static final String NAME = "Table Stat Updater"; + + @Override + public String getName() { + return NAME; + } + + @Override + public boolean isEligible(LogicalPlanRewriteRuleContext context) { + return true; + } + + @Override + public LogicalPlan rewrite(LogicalPlanRewriteRuleContext context) throws TajoException { + LogicalPlan plan = context.getPlan(); + LogicalPlan.QueryBlock rootBlock = plan.getRootBlock(); + + Rewriter r = new Rewriter(context.getQueryContext(), context.getStorage()); + r.visit(rootBlock, plan, rootBlock, rootBlock.getRoot(), new Stack<>()); + return plan; + } + + private final class Rewriter extends BasicLogicalPlanVisitor<Object, Object> { + private final OverridableConf conf; + private final StorageService storage; + + + private Rewriter(OverridableConf conf, StorageService storage) { + this.conf = conf; + this.storage = storage; + } + + @Override + public Object visitScan(Object object, LogicalPlan plan, LogicalPlan.QueryBlock block, ScanNode scanNode, + Stack<LogicalNode> stack) throws TajoException { + final TableDesc table = scanNode.getTableDesc(); + + if (!isVirtual(table)) { + final TableStats stats = getTableStat(table); + final long tableSize = stats.getNumBytes(); + final Optional<EvalNode> filter = scanNode.hasQual() ? Optional.of(scanNode.getQual()) : Optional.empty(); + + // If USE_TABLE_VOLUME is set, we will update the table volume through a storage handler. + // In addition, if the table size is zero, we will update too. + // It is a good workaround to avoid suboptimal join orders without cheap cost. + if (conf.getBool(SessionVars.USE_TABLE_VOLUME) || tableSize == 0) { + table.getStats().setNumBytes(getTableVolume(table, filter)); + } + } + + return scanNode; + } + + private TableStats getTableStat(TableDesc table) { + TableStats stats; + if (table.getStats() == null) { + stats = new TableStats(); + table.setStats(stats); + } else { + stats = table.getStats(); + } + return stats; + } + + private boolean isVirtual(TableDesc table) { + return table.getMeta().getDataFormat().equals("SYSTEM") || table.getMeta().getDataFormat().equals("FAKEFILE"); + } + + private long getTableVolume(TableDesc table, Optional<EvalNode> filter) { + try { + if (table.getStats() != null) { + return storage.getTableVolumn(table.getUri(), filter); + } + } catch (UnsupportedException t) { + LOG.warn(table.getName() + " does not support Tablespace::getTableVolume()"); + // By default, return 1GB to avoid a single task + } + + return StorageUnit.GB; — End diff – How about the configurable value ?
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/901#issuecomment-161909194

          I recover the default 1GB to the original value -1. Actually, it was related to many other code parts. It should be resolved in another jira.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/901#issuecomment-161909194 I recover the default 1GB to the original value -1. Actually, it was related to many other code parts. It should be resolved in another jira.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/901#issuecomment-164305800

          I rebased and fixed all tests. It is ready to review.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/901#issuecomment-164305800 I rebased and fixed all tests. It is ready to review.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/901#issuecomment-165382969

          Rebased.

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/901#issuecomment-165382969 Rebased.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/901#issuecomment-165404207

          This patch looks good to me. Test failure seems not related to the changes in this PR.

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/901#issuecomment-165404207 This patch looks good to me. Test failure seems not related to the changes in this PR.
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user hyunsik commented on the pull request:

          https://github.com/apache/tajo/pull/901#issuecomment-169472813

          Rebased. Thanks!

          Show
          githubbot ASF GitHub Bot added a comment - Github user hyunsik commented on the pull request: https://github.com/apache/tajo/pull/901#issuecomment-169472813 Rebased. Thanks!
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user jihoonson commented on the pull request:

          https://github.com/apache/tajo/pull/901#issuecomment-169537464

          +1 ship it!

          Show
          githubbot ASF GitHub Bot added a comment - Github user jihoonson commented on the pull request: https://github.com/apache/tajo/pull/901#issuecomment-169537464 +1 ship it!
          Hide
          githubbot ASF GitHub Bot added a comment -

          Github user asfgit closed the pull request at:

          https://github.com/apache/tajo/pull/901

          Show
          githubbot ASF GitHub Bot added a comment - Github user asfgit closed the pull request at: https://github.com/apache/tajo/pull/901
          Hide
          hyunsik Hyunsik Choi added a comment -

          I just committed the patch. Thanks for your review.

          Show
          hyunsik Hyunsik Choi added a comment - I just committed the patch. Thanks for your review.
          Hide
          hudson Hudson added a comment -

          FAILURE: Integrated in Tajo-master-CODEGEN-build #647 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/647/)
          TAJO-1991: Tablespace::getVolume should take filter predication. (hyunsik: rev 9c14dc3ad794ace2d2ab46c0b0185f265cc703bf)

          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java
          • tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcTablespace.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/LogicalPlanRewriteRuleContext.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java
          • CHANGES
          • tajo-plan/src/main/java/org/apache/tajo/plan/StorageService.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java
          • tajo-storage/tajo-storage-jdbc/pom.xml
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
          Show
          hudson Hudson added a comment - FAILURE: Integrated in Tajo-master-CODEGEN-build #647 (See https://builds.apache.org/job/Tajo-master-CODEGEN-build/647/ ) TAJO-1991 : Tablespace::getVolume should take filter predication. (hyunsik: rev 9c14dc3ad794ace2d2ab46c0b0185f265cc703bf) tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcTablespace.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/LogicalPlanRewriteRuleContext.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java CHANGES tajo-plan/src/main/java/org/apache/tajo/plan/StorageService.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java tajo-storage/tajo-storage-jdbc/pom.xml tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in Tajo-master-build #1043 (See https://builds.apache.org/job/Tajo-master-build/1043/)
          TAJO-1991: Tablespace::getVolume should take filter predication. (hyunsik: rev 9c14dc3ad794ace2d2ab46c0b0185f265cc703bf)

          • CHANGES
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/LogicalPlanRewriteRuleContext.java
          • tajo-storage/tajo-storage-jdbc/pom.xml
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java
          • tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/StorageService.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in Tajo-master-build #1043 (See https://builds.apache.org/job/Tajo-master-build/1043/ ) TAJO-1991 : Tablespace::getVolume should take filter predication. (hyunsik: rev 9c14dc3ad794ace2d2ab46c0b0185f265cc703bf) CHANGES tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/LogicalPlanRewriteRuleContext.java tajo-storage/tajo-storage-jdbc/pom.xml tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/BaseLogicalPlanRewriteEngine.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java tajo-plan/src/main/java/org/apache/tajo/plan/StorageService.java
          Hide
          hudson Hudson added a comment -

          FAILURE: Integrated in Tajo-0.11.1-build #165 (See https://builds.apache.org/job/Tajo-0.11.1-build/165/)
          TAJO-1991: Tablespace::getVolume should take filter predication. (hyunsik: rev 39f7b4747af960ce5c0946b26d38a64bc22a7500)

          • tajo-storage/tajo-storage-jdbc/pom.xml
          • tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/StorageService.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java
          • tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java
          • tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/LogicalPlanRewriteRuleContext.java
          • tajo-storage/tajo-storage-pgsql/pom.xml
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java
          • tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java
          • tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java
          • tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java
          • CHANGES
          • tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java
          Show
          hudson Hudson added a comment - FAILURE: Integrated in Tajo-0.11.1-build #165 (See https://builds.apache.org/job/Tajo-0.11.1-build/165/ ) TAJO-1991 : Tablespace::getVolume should take filter predication. (hyunsik: rev 39f7b4747af960ce5c0946b26d38a64bc22a7500) tajo-storage/tajo-storage-jdbc/pom.xml tajo-storage/tajo-storage-jdbc/src/main/java/org/apache/tajo/storage/jdbc/JdbcTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/StorageService.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/Tablespace.java tajo-common/src/main/java/org/apache/tajo/storage/StorageService.java tajo-storage/tajo-storage-hdfs/src/main/java/org/apache/tajo/storage/FileTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/LogicalPlanRewriteRuleContext.java tajo-storage/tajo-storage-pgsql/pom.xml tajo-plan/src/main/java/org/apache/tajo/plan/LogicalPlanner.java tajo-storage/tajo-storage-hbase/src/main/java/org/apache/tajo/storage/hbase/HBaseTablespace.java tajo-plan/src/main/java/org/apache/tajo/plan/rewrite/TableStatUpdateRewriter.java tajo-storage/tajo-storage-common/src/main/java/org/apache/tajo/storage/TablespaceManager.java CHANGES tajo-plan/src/main/java/org/apache/tajo/plan/LogicalOptimizer.java

            People

            • Assignee:
              hyunsik Hyunsik Choi
              Reporter:
              hyunsik Hyunsik Choi
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development