[ 
https://issues.apache.org/jira/browse/TAJO-1553?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14560223#comment-14560223
 ] 

ASF GitHub Bot commented on TAJO-1553:
--------------------------------------

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

    https://github.com/apache/tajo/pull/583#discussion_r31094151
  
    --- Diff: 
tajo-core/src/main/java/org/apache/tajo/engine/planner/global/ExecutionBlock.java
 ---
    @@ -120,25 +171,49 @@ public boolean hasUnion() {
         return hasUnionPlan;
       }
     
    -  public void addBroadcastTable(String tableName) {
    -    broadcasted.add(tableName);
    -    enforcer.addBroadcast(tableName);
    +  public boolean isUnionOnly() {
    +    return isUnionOnly;
       }
     
    -  public void removeBroadcastTable(String tableName) {
    -    broadcasted.remove(tableName);
    -    enforcer.removeBroadcast(tableName);
    +  public void addBroadcastRelation(ScanNode relationNode) {
    --- End diff --
    
    I used the term 'broadcastable'. If this term is used with 'table' 
together, i.e., broadcastableTable, it makes readers confused. 


> Improve broadcast join planning
> -------------------------------
>
>                 Key: TAJO-1553
>                 URL: https://issues.apache.org/jira/browse/TAJO-1553
>             Project: Tajo
>          Issue Type: Improvement
>          Components: distributed query plan, planner/optimizer
>            Reporter: Jihoon Son
>            Assignee: Jihoon Son
>             Fix For: 0.11.0
>
>
> The global engine generates a logical plan, and then marks some parts of the 
> plan as broadcast plan which means that they and their input will be 
> broadcasted to all workers. 
> Currently, broadcast parts are identified according to some rigid and 
> hard-coded rules. This will limit the broadcast opportunities in many cases.
> So, in this issue, I propose refactoring the broadcast planner to be more 
> general.
> Broadcast parts can be identified recursively.
> * A leaf node will be broadcasted if its input size does not exceed the 
> pre-defined threshold.
> * An intermediate node will be broadcasted if it has at least one broadcast 
> child.
> * For outer joins, row-preserved tables must not be broadcasted to avoid 
> input data duplication.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to