You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tajo.apache.org by "Hyunsik Choi (JIRA)" <ji...@apache.org> on 2013/12/02 18:05:35 UTC
[jira] [Updated] (TAJO-316) Improve
GreedyHeuristicJoinOrderAlgorithm to deal with non-commutative joins
[ https://issues.apache.org/jira/browse/TAJO-316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Hyunsik Choi updated TAJO-316:
------------------------------
Attachment: TAJO-316.patch
I've uploaded the first patch.
This patch does as follows:
* Improve GreedyHeuristicJoinOrder to handle non-commutative joins, such as left/right/outer and anti/semi joins
* Improve GreedyHeuristicJoinOrder to generate a bushy join tree
** This class is based on the greedy operator order algorithm, whose complexity is O(n^3).
** It has more possibility to generate more optimal join orders and still is fast.
* Improve GlobalPlanner to handle a bushy join tree
* Improve ExecutionBlockCursor to handle a bushy tree distributed execution plan
This work almost done, but this patch still is in progress for more refactors, test, and documentations. I'll post the completed patch tomorrow.
> Improve GreedyHeuristicJoinOrderAlgorithm to deal with non-commutative joins
> ----------------------------------------------------------------------------
>
> Key: TAJO-316
> URL: https://issues.apache.org/jira/browse/TAJO-316
> Project: Tajo
> Issue Type: Improvement
> Components: planner/optimizer
> Reporter: Hyunsik Choi
> Assignee: Hyunsik Choi
> Labels: cbo
> Fix For: 0.8-incubating
>
> Attachments: TAJO-316.patch
>
>
> GreedyHeuristicJoinOrderAlgorithm is a default cost-based join order algorithm. It is designed only for inner joins, and it cannot deal with non-commutative joins, such as left/right/full outer join and semi/anti join. The main goal of this issue is to improve this algorithm to deal with them.
--
This message was sent by Atlassian JIRA
(v6.1#6144)