public abstract class AbstractDeMuxExchange extends AbstractExchange
Exchange.ParallelizationDependency
Modifier and Type | Field and Description |
---|---|
protected LogicalExpression |
expr |
protected Map<Integer,MinorFragmentEndpoint> |
receiverToSenderMapping |
protected org.apache.drill.shaded.guava.com.google.common.collect.ArrayListMultimap<Integer,MinorFragmentEndpoint> |
senderToReceiversMapping |
receiverLocations, receiverMajorFragmentId, senderLocations, senderMajorFragmentId
child
INIT_ALLOCATION, initialAllocation, MAX_ALLOCATION, maxAllocation, userName
Constructor and Description |
---|
AbstractDeMuxExchange(PhysicalOperator child,
LogicalExpression expr) |
Modifier and Type | Method and Description |
---|---|
protected void |
createSenderReceiverMapping() |
LogicalExpression |
getExpression() |
Exchange.ParallelizationDependency |
getParallelizationDependency()
In DeMuxExchange, sender fragment parallelization and endpoint assignment depends on receiver fragment endpoint
assignments.
|
ParallelizationInfo |
getReceiverParallelizationInfo(List<CoordinationProtos.DrillbitEndpoint> senderFragmentEndpoints)
Default receiver parallelization width range is [1, Integer.MAX_VALUE] and affinity to nodes where sender
fragments are running.
|
Sender |
getSender(int minorFragmentId,
PhysicalOperator child)
Get the Sender associated with the given minorFragmentId.
|
ParallelizationInfo |
getSenderParallelizationInfo(List<CoordinationProtos.DrillbitEndpoint> receiverFragmentEndpoints)
Default sender parallelization width range is [1, Integer.MAX_VALUE] and no endpoint affinity
|
accept, getDefaultAffinityMap, getOperatorType, getReceiverMemory, getSenderMemory, isExecutable, setupReceivers, setupReceivers, setupSenders, setupSenders
getChild, getNewWithChild, getNewWithChildren, iterator
accept, getCost, getInitialAllocation, getMaxAllocation, getOperatorId, getSVMode, getUserName, isBufferedOperator, setCost, setMaxAllocation, setOperatorId
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getChild, getReceiver
getCost, getInitialAllocation, getMaxAllocation, getNewWithChildren, getOperatorId, getSVMode, getUserName, isBufferedOperator, setCost, setMaxAllocation, setOperatorId
accept
forEach, iterator, spliterator
protected final LogicalExpression expr
protected Map<Integer,MinorFragmentEndpoint> receiverToSenderMapping
protected org.apache.drill.shaded.guava.com.google.common.collect.ArrayListMultimap<Integer,MinorFragmentEndpoint> senderToReceiversMapping
public AbstractDeMuxExchange(PhysicalOperator child, LogicalExpression expr)
public LogicalExpression getExpression()
public ParallelizationInfo getSenderParallelizationInfo(List<CoordinationProtos.DrillbitEndpoint> receiverFragmentEndpoints)
AbstractExchange
getSenderParallelizationInfo
in interface Exchange
getSenderParallelizationInfo
in class AbstractExchange
receiverFragmentEndpoints
- Endpoints assigned to receiver fragment if available, otherwise an empty list.ParallelizationInfo
.public ParallelizationInfo getReceiverParallelizationInfo(List<CoordinationProtos.DrillbitEndpoint> senderFragmentEndpoints)
AbstractExchange
getReceiverParallelizationInfo
in interface Exchange
getReceiverParallelizationInfo
in class AbstractExchange
senderFragmentEndpoints
- Endpoints assigned to receiver fragment if available, otherwise an empty list.ParallelizationInfo
.public Sender getSender(int minorFragmentId, PhysicalOperator child)
Exchange
minorFragmentId
- The minor fragment id, must be in the range [0, fragment.width).child
- The feeding node for the requested sender.public Exchange.ParallelizationDependency getParallelizationDependency()
getParallelizationDependency
in interface Exchange
getParallelizationDependency
in class AbstractExchange
protected void createSenderReceiverMapping()
Copyright © 1970 The Apache Software Foundation. All rights reserved.