blob: c1496c080a254d6bf1435f52838d403b7cb2dd0e [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>DefaultResourceAwareStrategy (Storm 2.2.0 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="DefaultResourceAwareStrategy (Storm 2.2.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":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/DefaultResourceAwareStrategy.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/storm/scheduler/resource/strategies/scheduling/ConstraintSolverStrategy.SolverResult.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/GenericResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/storm/scheduler/resource/strategies/scheduling/DefaultResourceAwareStrategy.html" target="_top">Frames</a></li>
<li><a href="DefaultResourceAwareStrategy.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><a href="#nested.classes.inherited.from.class.org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy">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>Field&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.storm.scheduler.resource.strategies.scheduling</div>
<h2 title="Class DefaultResourceAwareStrategy" class="title">Class DefaultResourceAwareStrategy</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/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy</a></li>
<li>
<ul class="inheritance">
<li>org.apache.storm.scheduler.resource.strategies.scheduling.DefaultResourceAwareStrategy</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/IStrategy.html" title="interface in org.apache.storm.scheduler.resource.strategies.scheduling">IStrategy</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">DefaultResourceAwareStrategy</span>
extends <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy</a>
implements <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/IStrategy.html" title="interface in org.apache.storm.scheduler.resource.strategies.scheduling">IStrategy</a></pre>
</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.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.storm.scheduler.resource.strategies.scheduling.<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy</a></h3>
<code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.AllResources.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.AllResources</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.ExistingScheduleFunc.html" title="interface in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.ExistingScheduleFunc</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.ObjectResources.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.ObjectResources</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.storm.scheduler.resource.strategies.scheduling.<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy</a></h3>
<code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#cluster">cluster</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#nodes">nodes</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/storm/scheduler/resource/strategies/scheduling/DefaultResourceAwareStrategy.html#DefaultResourceAwareStrategy--">DefaultResourceAwareStrategy</a></span>()</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><a href="../../../../../../../org/apache/storm/scheduler/resource/SchedulingResult.html" title="class in org.apache.storm.scheduler.resource">SchedulingResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/DefaultResourceAwareStrategy.html#schedule-org.apache.storm.scheduler.Cluster-org.apache.storm.scheduler.TopologyDetails-">schedule</a></span>(<a href="../../../../../../../org/apache/storm/scheduler/Cluster.html" title="class in org.apache.storm.scheduler">Cluster</a>&nbsp;cluster,
<a href="../../../../../../../org/apache/storm/scheduler/TopologyDetails.html" title="class in org.apache.storm.scheduler">TopologyDetails</a>&nbsp;td)</code>
<div class="block">This method is invoked to calculate a scheduling for topology td.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html?is-external=true" title="class or interface in java.util">TreeSet</a>&lt;<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.ObjectResources.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.ObjectResources</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/DefaultResourceAwareStrategy.html#sortObjectResources-org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy.AllResources-org.apache.storm.scheduler.ExecutorDetails-org.apache.storm.scheduler.TopologyDetails-org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy.ExistingScheduleFunc-">sortObjectResources</a></span>(<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.AllResources.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.AllResources</a>&nbsp;allResources,
<a href="../../../../../../../org/apache/storm/scheduler/ExecutorDetails.html" title="class in org.apache.storm.scheduler">ExecutorDetails</a>&nbsp;exec,
<a href="../../../../../../../org/apache/storm/scheduler/TopologyDetails.html" title="class in org.apache.storm.scheduler">TopologyDetails</a>&nbsp;topologyDetails,
<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.ExistingScheduleFunc.html" title="interface in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.ExistingScheduleFunc</a>&nbsp;existingScheduleFunc)</code>
<div class="block">Sort objects by the following two criteria.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.storm.scheduler.resource.strategies.scheduling.<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy</a></h3>
<code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#findWorkerForExec-org.apache.storm.scheduler.ExecutorDetails-org.apache.storm.scheduler.TopologyDetails-java.lang.Iterable-">findWorkerForExec</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#getSpouts-org.apache.storm.scheduler.TopologyDetails-">getSpouts</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#hostnameToNodes-java.lang.String-">hostnameToNodes</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#idToNode-java.lang.String-">idToNode</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#makeHostToNodeIds-java.util.List-">makeHostToNodeIds</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#mkNotEnoughResources-org.apache.storm.scheduler.TopologyDetails-">mkNotEnoughResources</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#nodeToRack-org.apache.storm.scheduler.resource.RasNode-">nodeToRack</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#orderExecutors-org.apache.storm.scheduler.TopologyDetails-java.util.Collection-">orderExecutors</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#prepare-java.util.Map-">prepare</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#scheduleExecutor-org.apache.storm.scheduler.ExecutorDetails-org.apache.storm.scheduler.TopologyDetails-java.util.Collection-java.lang.Iterable-">scheduleExecutor</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#sortAllNodes-org.apache.storm.scheduler.TopologyDetails-org.apache.storm.scheduler.ExecutorDetails-java.util.List-java.util.List-">sortAllNodes</a>, <a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#sortNodes-java.util.List-org.apache.storm.scheduler.ExecutorDetails-org.apache.storm.scheduler.TopologyDetails-java.lang.String-java.util.Map-">sortNodes</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.storm.scheduler.resource.strategies.scheduling.IStrategy">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.storm.scheduler.resource.strategies.scheduling.<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/IStrategy.html" title="interface in org.apache.storm.scheduler.resource.strategies.scheduling">IStrategy</a></h3>
<code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/IStrategy.html#prepare-java.util.Map-">prepare</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="DefaultResourceAwareStrategy--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DefaultResourceAwareStrategy</h4>
<pre>public&nbsp;DefaultResourceAwareStrategy()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="schedule-org.apache.storm.scheduler.Cluster-org.apache.storm.scheduler.TopologyDetails-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schedule</h4>
<pre>public&nbsp;<a href="../../../../../../../org/apache/storm/scheduler/resource/SchedulingResult.html" title="class in org.apache.storm.scheduler.resource">SchedulingResult</a>&nbsp;schedule(<a href="../../../../../../../org/apache/storm/scheduler/Cluster.html" title="class in org.apache.storm.scheduler">Cluster</a>&nbsp;cluster,
<a href="../../../../../../../org/apache/storm/scheduler/TopologyDetails.html" title="class in org.apache.storm.scheduler">TopologyDetails</a>&nbsp;td)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/IStrategy.html#schedule-org.apache.storm.scheduler.Cluster-org.apache.storm.scheduler.TopologyDetails-">IStrategy</a></code></span></div>
<div class="block"><p>This method is invoked to calculate a scheduling for topology td. Cluster will reject any changes that are not for the given topology. Any changes made to the cluster will be committed if the scheduling is successful. <P></P> NOTE: scheduling occurs as a runnable in an interruptible thread. Scheduling should consider being interrupted if long running.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/IStrategy.html#schedule-org.apache.storm.scheduler.Cluster-org.apache.storm.scheduler.TopologyDetails-">schedule</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/IStrategy.html" title="interface in org.apache.storm.scheduler.resource.strategies.scheduling">IStrategy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cluster</code> - the current state of the cluster</dd>
<dd><code>td</code> - the topology to schedule for</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns a SchedulingResult object containing SchedulingStatus object to indicate whether scheduling is successful.</dd>
</dl>
</li>
</ul>
<a name="sortObjectResources-org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy.AllResources-org.apache.storm.scheduler.ExecutorDetails-org.apache.storm.scheduler.TopologyDetails-org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy.ExistingScheduleFunc-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>sortObjectResources</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html?is-external=true" title="class or interface in java.util">TreeSet</a>&lt;<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.ObjectResources.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.ObjectResources</a>&gt;&nbsp;sortObjectResources(<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.AllResources.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.AllResources</a>&nbsp;allResources,
<a href="../../../../../../../org/apache/storm/scheduler/ExecutorDetails.html" title="class in org.apache.storm.scheduler">ExecutorDetails</a>&nbsp;exec,
<a href="../../../../../../../org/apache/storm/scheduler/TopologyDetails.html" title="class in org.apache.storm.scheduler">TopologyDetails</a>&nbsp;topologyDetails,
<a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.ExistingScheduleFunc.html" title="interface in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy.ExistingScheduleFunc</a>&nbsp;existingScheduleFunc)</pre>
<div class="block"><p>Sort objects by the following two criteria. 1) the number executors of the topology that needs to be scheduled is already on the object (node or rack) in descending order. The reasoning to sort based on criterion 1 is so we schedule the rest of a topology on the same object (node or rack) as the existing executors of the topology. 2) the subordinate/subservient resource availability percentage of a rack in descending order We calculate the resource availability percentage by dividing the resource availability of the object (node or rack) by the resource availability of the entire rack or cluster depending on if object references a node or a rack. By doing this calculation, objects (node or rack) that have exhausted or little of one of the resources mentioned above will be ranked after racks that have more balanced resource availability. So we will be less likely to pick a rack that have a lot of one resource but a low amount of another.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html#sortObjectResources-org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy.AllResources-org.apache.storm.scheduler.ExecutorDetails-org.apache.storm.scheduler.TopologyDetails-org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy.ExistingScheduleFunc-">sortObjectResources</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/BaseResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling">BaseResourceAwareStrategy</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>allResources</code> - contains all individual ObjectResources as well as cumulative stats</dd>
<dd><code>existingScheduleFunc</code> - a function to get existing executors already scheduled on this object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a sorted list of ObjectResources</dd>
</dl>
</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/DefaultResourceAwareStrategy.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 class="aboutLanguage"><script type="text/javascript" src="../../../../../../../highlight.pack.js"></script>
<script type="text/javascript"><!--
hljs.initHighlightingOnLoad();
//--></script></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/ConstraintSolverStrategy.SolverResult.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/storm/scheduler/resource/strategies/scheduling/GenericResourceAwareStrategy.html" title="class in org.apache.storm.scheduler.resource.strategies.scheduling"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/storm/scheduler/resource/strategies/scheduling/DefaultResourceAwareStrategy.html" target="_top">Frames</a></li>
<li><a href="DefaultResourceAwareStrategy.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><a href="#nested.classes.inherited.from.class.org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.scheduler.resource.strategies.scheduling.BaseResourceAwareStrategy">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>Field&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; 2020 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>