blob: e038991ac8efbb557328bcec6e9dbad51aed0eb6 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AbstractMuxExchange (Drill : 1.20.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AbstractMuxExchange (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractMuxExchange.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractDeMuxExchange.html" title="class in org.apache.drill.exec.physical.config"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/physical/config/BroadcastExchange.html" title="class in org.apache.drill.exec.physical.config"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/physical/config/AbstractMuxExchange.html" target="_top">Frames</a></li>
<li><a href="AbstractMuxExchange.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.drill.exec.physical.config</div>
<h2 title="Class AbstractMuxExchange" class="title">Class AbstractMuxExchange</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html" title="class in org.apache.drill.exec.physical.base">org.apache.drill.exec.physical.base.AbstractBase</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html" title="class in org.apache.drill.exec.physical.base">org.apache.drill.exec.physical.base.AbstractSingle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html" title="class in org.apache.drill.exec.physical.base">org.apache.drill.exec.physical.base.AbstractExchange</a></li>
<li>
<ul class="inheritance">
<li>org.apache.drill.exec.physical.config.AbstractMuxExchange</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a>&gt;, <a href="../../../../../../org/apache/drill/common/graph/GraphValue.html" title="interface in org.apache.drill.common.graph">GraphValue</a>&lt;<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a>&gt;, <a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html" title="interface in org.apache.drill.exec.physical.base">Exchange</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a></dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../org/apache/drill/exec/physical/config/OrderedMuxExchange.html" title="class in org.apache.drill.exec.physical.config">OrderedMuxExchange</a>, <a href="../../../../../../org/apache/drill/exec/physical/config/UnorderedMuxExchange.html" title="class in org.apache.drill.exec.physical.config">UnorderedMuxExchange</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractMuxExchange</span>
extends <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html" title="class in org.apache.drill.exec.physical.base">AbstractExchange</a></pre>
<div class="block">Multiplexing Exchange (MuxExchange) is used when results from multiple minor fragments belonging to the same
major fragment running on a node need to be collected at one fragment on the same node before distributing the
results further. This helps when the sender that is distributing the results has overhead that is proportional to
the number of sender instances. An example of such sender is PartitionSender. Each instance of PartitionSender
allocates "r" buffers where "r" is the number of receivers.
Ex. Drillbit A is assigned 10 minor fragments belonging to the same major fragment. Each of these fragments
has a PartitionSender instance which is sending data to 300 receivers. Each PartitionSender needs 300 buffers,
so total of 10*300 buffers are needed. With MuxExchange, all 10 fragments send the data directly (without
partitioning) to MuxExchange which uses the PartitionSender to partition the incoming data and distribute
to receivers. MuxExchange has only one instance per Drillbit per major fragment which means only one instance of
PartitionSender per Drillbit per major fragment. With MuxExchange total number of buffers used by PartitionSender
for the 10 fragments is 300 instead of earlier number 10*300.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.drill.exec.physical.base.Exchange">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html" title="interface in org.apache.drill.exec.physical.base">Exchange</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.ParallelizationDependency.html" title="enum in org.apache.drill.exec.physical.base">Exchange.ParallelizationDependency</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected org.apache.drill.shaded.guava.com.google.common.collect.ArrayListMultimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="../../../../../../org/apache/drill/exec/physical/MinorFragmentEndpoint.html" title="class in org.apache.drill.exec.physical">MinorFragmentEndpoint</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.html#receiverToSenderMapping">receiverToSenderMapping</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="../../../../../../org/apache/drill/exec/physical/MinorFragmentEndpoint.html" title="class in org.apache.drill.exec.physical">MinorFragmentEndpoint</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.html#senderToReceiverMapping">senderToReceiverMapping</a></span></code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.physical.base.AbstractExchange">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html" title="class in org.apache.drill.exec.physical.base">AbstractExchange</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#receiverLocations">receiverLocations</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#receiverMajorFragmentId">receiverMajorFragmentId</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#senderLocations">senderLocations</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#senderMajorFragmentId">senderMajorFragmentId</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.physical.base.AbstractSingle">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html" title="class in org.apache.drill.exec.physical.base">AbstractSingle</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html#child">child</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.drill.exec.physical.base.AbstractBase">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html" title="class in org.apache.drill.exec.physical.base">AbstractBase</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#INIT_ALLOCATION">INIT_ALLOCATION</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#initialAllocation">initialAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#MAX_ALLOCATION">MAX_ALLOCATION</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#maxAllocation">maxAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#userName">userName</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.html#AbstractMuxExchange-org.apache.drill.exec.physical.base.PhysicalOperator-">AbstractMuxExchange</a></span>(<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a>&nbsp;child)</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.html#createSenderReceiverMapping--">createSenderReceiverMapping</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/planner/fragment/ParallelizationInfo.html" title="class in org.apache.drill.exec.planner.fragment">ParallelizationInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.html#getReceiverParallelizationInfo-java.util.List-">getReceiverParallelizationInfo</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/exec/proto/CoordinationProtos.DrillbitEndpoint.html" title="class in org.apache.drill.exec.proto">CoordinationProtos.DrillbitEndpoint</a>&gt;&nbsp;senderFragmentEndpoints)</code>
<div class="block">Default receiver parallelization width range is [1, Integer.MAX_VALUE] and affinity to nodes where sender
fragments are running.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/exec/physical/base/Sender.html" title="interface in org.apache.drill.exec.physical.base">Sender</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.html#getSender-int-org.apache.drill.exec.physical.base.PhysicalOperator-">getSender</a></span>(int&nbsp;minorFragmentId,
<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a>&nbsp;child)</code>
<div class="block">Get the Sender associated with the given minorFragmentId.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/exec/physical/MinorFragmentEndpoint.html" title="class in org.apache.drill.exec.physical">MinorFragmentEndpoint</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.html#getSenders-int-">getSenders</a></span>(int&nbsp;minorFragmentId)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.base.AbstractExchange">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html" title="class in org.apache.drill.exec.physical.base">AbstractExchange</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#accept-org.apache.drill.exec.physical.base.PhysicalVisitor-X-">accept</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getDefaultAffinityMap-java.util.List-">getDefaultAffinityMap</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getOperatorType--">getOperatorType</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getParallelizationDependency--">getParallelizationDependency</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getReceiverMemory-int-int-">getReceiverMemory</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getSenderMemory-int-int-">getSenderMemory</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getSenderParallelizationInfo-java.util.List-">getSenderParallelizationInfo</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#isExecutable--">isExecutable</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#setupReceivers-int-java.util.List-">setupReceivers</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#setupReceivers-java.util.List-">setupReceivers</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#setupSenders-int-java.util.List-">setupSenders</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#setupSenders-java.util.List-">setupSenders</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.base.AbstractSingle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html" title="class in org.apache.drill.exec.physical.base">AbstractSingle</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html#getChild--">getChild</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html#getNewWithChild-org.apache.drill.exec.physical.base.PhysicalOperator-">getNewWithChild</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html#getNewWithChildren-java.util.List-">getNewWithChildren</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractSingle.html#iterator--">iterator</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.base.AbstractBase">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html" title="class in org.apache.drill.exec.physical.base">AbstractBase</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#accept-org.apache.drill.common.graph.GraphVisitor-">accept</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#getCost--">getCost</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#getInitialAllocation--">getInitialAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#getMaxAllocation--">getMaxAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#getOperatorId--">getOperatorId</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#getSVMode--">getSVMode</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#getUserName--">getUserName</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#isBufferedOperator-org.apache.drill.exec.ops.QueryContext-">isBufferedOperator</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#setCost-org.apache.drill.exec.planner.cost.PrelCostEstimates-">setCost</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#setMaxAllocation-long-">setMaxAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/AbstractBase.html#setOperatorId-int-">setOperatorId</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.base.Exchange">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html" title="interface in org.apache.drill.exec.physical.base">Exchange</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html#getChild--">getChild</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html#getReceiver-int-">getReceiver</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.exec.physical.base.PhysicalOperator">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.drill.exec.physical.base.<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a></h3>
<code><a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#getCost--">getCost</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#getInitialAllocation--">getInitialAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#getMaxAllocation--">getMaxAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#getNewWithChildren-java.util.List-">getNewWithChildren</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#getOperatorId--">getOperatorId</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#getSVMode--">getSVMode</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#getUserName--">getUserName</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#isBufferedOperator-org.apache.drill.exec.ops.QueryContext-">isBufferedOperator</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#setCost-org.apache.drill.exec.planner.cost.PrelCostEstimates-">setCost</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#setMaxAllocation-long-">setMaxAllocation</a>, <a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html#setOperatorId-int-">setOperatorId</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.drill.common.graph.GraphValue">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.drill.common.graph.<a href="../../../../../../org/apache/drill/common/graph/GraphValue.html" title="interface in org.apache.drill.common.graph">GraphValue</a></h3>
<code><a href="../../../../../../org/apache/drill/common/graph/GraphValue.html#accept-org.apache.drill.common.graph.GraphVisitor-">accept</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Iterable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#forEach-java.util.function.Consumer-" title="class or interface in java.lang">forEach</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#iterator--" title="class or interface in java.lang">iterator</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true#spliterator--" title="class or interface in java.lang">spliterator</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="senderToReceiverMapping">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>senderToReceiverMapping</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="../../../../../../org/apache/drill/exec/physical/MinorFragmentEndpoint.html" title="class in org.apache.drill.exec.physical">MinorFragmentEndpoint</a>&gt; senderToReceiverMapping</pre>
</li>
</ul>
<a name="receiverToSenderMapping">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>receiverToSenderMapping</h4>
<pre>protected&nbsp;org.apache.drill.shaded.guava.com.google.common.collect.ArrayListMultimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="../../../../../../org/apache/drill/exec/physical/MinorFragmentEndpoint.html" title="class in org.apache.drill.exec.physical">MinorFragmentEndpoint</a>&gt; receiverToSenderMapping</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractMuxExchange-org.apache.drill.exec.physical.base.PhysicalOperator-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractMuxExchange</h4>
<pre>public&nbsp;AbstractMuxExchange(<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a>&nbsp;child)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getReceiverParallelizationInfo-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReceiverParallelizationInfo</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/planner/fragment/ParallelizationInfo.html" title="class in org.apache.drill.exec.planner.fragment">ParallelizationInfo</a>&nbsp;getReceiverParallelizationInfo(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/exec/proto/CoordinationProtos.DrillbitEndpoint.html" title="class in org.apache.drill.exec.proto">CoordinationProtos.DrillbitEndpoint</a>&gt;&nbsp;senderFragmentEndpoints)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getReceiverParallelizationInfo-java.util.List-">AbstractExchange</a></code></span></div>
<div class="block">Default receiver parallelization width range is [1, Integer.MAX_VALUE] and affinity to nodes where sender
fragments are running.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html#getReceiverParallelizationInfo-java.util.List-">getReceiverParallelizationInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html" title="interface in org.apache.drill.exec.physical.base">Exchange</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getReceiverParallelizationInfo-java.util.List-">getReceiverParallelizationInfo</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html" title="class in org.apache.drill.exec.physical.base">AbstractExchange</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>senderFragmentEndpoints</code> - Endpoints assigned to receiver fragment if available, otherwise an empty list.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Receiver <a href="../../../../../../org/apache/drill/exec/planner/fragment/ParallelizationInfo.html" title="class in org.apache.drill.exec.planner.fragment"><code>ParallelizationInfo</code></a>.</dd>
</dl>
</li>
</ul>
<a name="getSender-int-org.apache.drill.exec.physical.base.PhysicalOperator-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSender</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/physical/base/Sender.html" title="interface in org.apache.drill.exec.physical.base">Sender</a>&nbsp;getSender(int&nbsp;minorFragmentId,
<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a>&nbsp;child)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html#getSender-int-org.apache.drill.exec.physical.base.PhysicalOperator-">Exchange</a></code></span></div>
<div class="block">Get the Sender associated with the given minorFragmentId. Cannot be called until after setupSenders() and
setupReceivers() have been called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>minorFragmentId</code> - The minor fragment id, must be in the range [0, fragment.width).</dd>
<dd><code>child</code> - The feeding node for the requested sender.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The materialized sender for the given arguments.</dd>
</dl>
</li>
</ul>
<a name="getSenders-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSenders</h4>
<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/drill/exec/physical/MinorFragmentEndpoint.html" title="class in org.apache.drill.exec.physical">MinorFragmentEndpoint</a>&gt;&nbsp;getSenders(int&nbsp;minorFragmentId)</pre>
</li>
</ul>
<a name="createSenderReceiverMapping--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>createSenderReceiverMapping</h4>
<pre>protected&nbsp;void&nbsp;createSenderReceiverMapping()</pre>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractMuxExchange.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractDeMuxExchange.html" title="class in org.apache.drill.exec.physical.config"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/drill/exec/physical/config/BroadcastExchange.html" title="class in org.apache.drill.exec.physical.config"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/drill/exec/physical/config/AbstractMuxExchange.html" target="_top">Frames</a></li>
<li><a href="AbstractMuxExchange.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1970 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>