blob: fc5e119f072447bf303b5d4cf8d414605741ceb5 [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>AbstractDeMuxExchange (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="AbstractDeMuxExchange (Drill : 1.20.3 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":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/AbstractDeMuxExchange.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>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.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/AbstractDeMuxExchange.html" target="_top">Frames</a></li>
<li><a href="AbstractDeMuxExchange.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 AbstractDeMuxExchange" class="title">Class AbstractDeMuxExchange</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.AbstractDeMuxExchange</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/UnorderedDeMuxExchange.html" title="class in org.apache.drill.exec.physical.config">UnorderedDeMuxExchange</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractDeMuxExchange</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">DeMuxExchange is opposite of MuxExchange. It is used when the sender has overhead that is proportional to the
number of receivers. DeMuxExchange is run one instance per Drillbit endpoint which collects and distributes data
belonging to local receiving fragments running on the same Drillbit.
Example:
On a 3 node cluster, if the sender has 10 receivers on each node each sender requires 30 buffers. By inserting
DeMuxExchange, we create one receiver per node which means total of 3 receivers for each sender. If the number of
senders is 10, we use 10*3 buffers instead of 10*30. DeMuxExchange has a overhead of buffer space that is equal to
number of local receivers. In this case each DeMuxExchange needs 10 buffers, so total of 3*10 buffers.</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 <a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractDeMuxExchange.html#expr">expr</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/AbstractDeMuxExchange.html#receiverToSenderMapping">receiverToSenderMapping</a></span></code>&nbsp;</td>
</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/AbstractDeMuxExchange.html#senderToReceiversMapping">senderToReceiversMapping</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/AbstractDeMuxExchange.html#AbstractDeMuxExchange-org.apache.drill.exec.physical.base.PhysicalOperator-org.apache.drill.common.expression.LogicalExpression-">AbstractDeMuxExchange</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,
<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a>&nbsp;expr)</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/AbstractDeMuxExchange.html#createSenderReceiverMapping--">createSenderReceiverMapping</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractDeMuxExchange.html#getExpression--">getExpression</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><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></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractDeMuxExchange.html#getParallelizationDependency--">getParallelizationDependency</a></span>()</code>
<div class="block">In DeMuxExchange, sender fragment parallelization and endpoint assignment depends on receiver fragment endpoint
assignments.</div>
</td>
</tr>
<tr id="i3" 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/AbstractDeMuxExchange.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="i4" 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/AbstractDeMuxExchange.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="i5" 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/AbstractDeMuxExchange.html#getSenderParallelizationInfo-java.util.List-">getSenderParallelizationInfo</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;receiverFragmentEndpoints)</code>
<div class="block">Default sender parallelization width range is [1, Integer.MAX_VALUE] and no endpoint affinity</div>
</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#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#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="expr">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>expr</h4>
<pre>protected final&nbsp;<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a> expr</pre>
</li>
</ul>
<a name="receiverToSenderMapping">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>receiverToSenderMapping</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; receiverToSenderMapping</pre>
</li>
</ul>
<a name="senderToReceiversMapping">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>senderToReceiversMapping</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; senderToReceiversMapping</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractDeMuxExchange-org.apache.drill.exec.physical.base.PhysicalOperator-org.apache.drill.common.expression.LogicalExpression-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractDeMuxExchange</h4>
<pre>public&nbsp;AbstractDeMuxExchange(<a href="../../../../../../org/apache/drill/exec/physical/base/PhysicalOperator.html" title="interface in org.apache.drill.exec.physical.base">PhysicalOperator</a>&nbsp;child,
<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a>&nbsp;expr)</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getExpression--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExpression</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/common/expression/LogicalExpression.html" title="interface in org.apache.drill.common.expression">LogicalExpression</a>&nbsp;getExpression()</pre>
</li>
</ul>
<a name="getSenderParallelizationInfo-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSenderParallelizationInfo</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;getSenderParallelizationInfo(<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;receiverFragmentEndpoints)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/drill/exec/physical/base/AbstractExchange.html#getSenderParallelizationInfo-java.util.List-">AbstractExchange</a></code></span></div>
<div class="block">Default sender parallelization width range is [1, Integer.MAX_VALUE] and no endpoint affinity</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html#getSenderParallelizationInfo-java.util.List-">getSenderParallelizationInfo</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#getSenderParallelizationInfo-java.util.List-">getSenderParallelizationInfo</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>receiverFragmentEndpoints</code> - Endpoints assigned to receiver fragment if available, otherwise an empty list.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Sender <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="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="getParallelizationDependency--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getParallelizationDependency</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.ParallelizationDependency.html" title="enum in org.apache.drill.exec.physical.base">Exchange.ParallelizationDependency</a>&nbsp;getParallelizationDependency()</pre>
<div class="block">In DeMuxExchange, sender fragment parallelization and endpoint assignment depends on receiver fragment endpoint
assignments.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/drill/exec/physical/base/Exchange.html#getParallelizationDependency--">getParallelizationDependency</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#getParallelizationDependency--">getParallelizationDependency</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>
</dl>
</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/AbstractDeMuxExchange.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>Prev&nbsp;Class</li>
<li><a href="../../../../../../org/apache/drill/exec/physical/config/AbstractMuxExchange.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/AbstractDeMuxExchange.html" target="_top">Frames</a></li>
<li><a href="AbstractDeMuxExchange.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>