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

Aurijoy Majumdar edited comment on TEZ-2104 at 3/27/15 12:08 AM:
-----------------------------------------------------------------

Had a few doubts regarding setting up the cross join matrix or cross product 
based matrix to route the Mapper messages to the destination reducer( 
partitioning still necessary? other wise no concept of destination reducer). 
Here we actually send it to all reducers int the matrix of reducers in order to 
eliminate writing to file (I/O redundancy). But this leads to redundancy in 
sending the same message to non destination reducers. I guess the way out of 
that is sending them over to specific reducers by setting up a scheduling layer 
in between which will have affinity based scheduling to route it to the 
specific destination reducers over the edge setup for that specific reducer. Is 
that correct? 

Or is the concept of partitioning unnecessary here hence we can route the 
messages to any number of reducers ( no concept of destination reducer) that is 
to say that just route them over to the reducers according to some affinty 
based metric where the affinity is calculated on the basis of locality and load 
of the reducer and finally according to this calculation the reducer 
destination is chosen? 

Thanks



was (Author: aurijoy):
Had a few doubts regarding setting up the cross join matrix or cross product 
based matrix to route the Mapper messages to the destination reducer( 
partitioning still necessary? other wise no concept of destination reducer). 
Here we actually send it to all reducers int the matrix of reducers in order to 
eliminate writing to file (I/O redundancy). But this leads to redundancy in 
sending the same message to non destination reducers. I guess the way out of 
that is sending them over to specific reducers by setting up a scheduling layer 
in between which will have affinity based scheduling to route it to the 
specific destination reducers over the edge setup for that specific reducer. Is 
that correct? 

Or is the concept of partitioning not necessary here hence we can get route the 
messages to any number of reducers and just route them over to the reducers 
according to some affinty based metric which is to say the affinity is 
calculated on the basis of locality and load of the reducers available. 

Thanks


> A CrossProductEdge which produces synthetic cross-product parallelism
> ---------------------------------------------------------------------
>
>                 Key: TEZ-2104
>                 URL: https://issues.apache.org/jira/browse/TEZ-2104
>             Project: Apache Tez
>          Issue Type: New Feature
>            Reporter: Gopal V
>              Labels: gsoc, gsoc2015, hadoop, hive, java, tez
>
> Instead of producing duplicate data for the synthetic cross-product, to fit 
> into partitions, the amount of net IO can be vastly reduced by a special 
> purpose cross-product data movement edge.
> The Shuffle edge routes each partition's output to a single reducer, while 
> the cross-product edge routes it into a matrix of reducers without actually 
> duplicating the disk data.
> A partitioning scheme with 3 partitions on the lhs and rhs of a join 
> operation can be routed into 9 reducers by performing a cross-product similar 
> to 
> (1,2,3) x (a,b,c) = [(1,a), (1,b), (1,c), (2,a), (2,b) ...]
> This turns a single task cross-product model into a distributed cross product.



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

Reply via email to