You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by gi...@apache.org on 2017/12/09 00:21:37 UTC
[2/2] mesos-site git commit: Updated the website built from mesos
SHA: 2ab1a31.
Updated the website built from mesos SHA: 2ab1a31.
Project: http://git-wip-us.apache.org/repos/asf/mesos-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos-site/commit/cf2cf683
Tree: http://git-wip-us.apache.org/repos/asf/mesos-site/tree/cf2cf683
Diff: http://git-wip-us.apache.org/repos/asf/mesos-site/diff/cf2cf683
Branch: refs/heads/asf-site
Commit: cf2cf68359a9c4fd3cbb94809166a957d1612c6b
Parents: 3d6a445
Author: jenkins <bu...@apache.org>
Authored: Sat Dec 9 00:21:33 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Sat Dec 9 00:21:33 2017 +0000
----------------------------------------------------------------------
.../latest/c++/hierarchical_8hpp_source.html | 268 +-
content/sitemap.xml | 8894 +++++++++---------
2 files changed, 4584 insertions(+), 4578 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos-site/blob/cf2cf683/content/api/latest/c++/hierarchical_8hpp_source.html
----------------------------------------------------------------------
diff --git a/content/api/latest/c++/hierarchical_8hpp_source.html b/content/api/latest/c++/hierarchical_8hpp_source.html
index 85fd7bd..2e454d0 100644
--- a/content/api/latest/c++/hierarchical_8hpp_source.html
+++ b/content/api/latest/c++/hierarchical_8hpp_source.html
@@ -520,138 +520,144 @@
<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a64b69bd952f0b6768c115cfbc36a8b87"> 466</a></span>  <a class="code" href="classOption.html">Option<DomainInfo></a> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a64b69bd952f0b6768c115cfbc36a8b87">domain</a>;</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> </div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  <span class="comment">// There are two stages of allocation. During the first stage resources</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// are allocated only to frameworks in roles with quota set. During the</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="comment">// second stage remaining resources that would not be required to satisfy</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="comment">// un-allocated quota are then allocated to all frameworks.</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="comment">// Each stage comprises two levels of sorting, hence "hierarchical".</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// Level 1 sorts across roles:</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// Currently, only the allocated portion of the reserved resources are</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="comment">// accounted for fairness calculation.</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="comment">// TODO(mpark): Reserved resources should be accounted for fairness</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="comment">// calculation whether they are allocated or not, since they model a long or</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="comment">// forever running task. That is, the effect of reserving resources is</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="comment">// equivalent to launching a task in that the resources that make up the</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">// reservation are not available to other roles as non-revocable.</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="comment">// Level 2 sorts across frameworks within a particular role:</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// Reserved resources at this level are, and should be accounted for</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">// fairness calculation only if they are allocated. This is because</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="comment">// reserved resources are fairly shared across the frameworks in the role.</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="comment">// The allocator relies on `Sorter`s to employ a particular sorting</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="comment">// algorithm. Each level has its own sorter and hence may have different</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="comment">// fairness calculations.</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="comment">// NOTE: The hierarchical allocator considers revocable resources as</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="comment">// regular resources when doing fairness calculations.</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="comment">// TODO(vinod): Consider using a different fairness algorithm for</span></div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="comment">// revocable resources.</span></div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span> </div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="comment">// A sorter for active roles. This sorter determines the order in which</span></div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">// roles are allocated resources during Level 1 of the second stage.</span></div>
-<div class="line"><a name="l00501"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a890bb44d4f46f708e8df0514036d44ca"> 501</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<Sorter></a> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a890bb44d4f46f708e8df0514036d44ca">roleSorter</a>;</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span> </div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="comment">// A dedicated sorter for roles for which quota is set. This sorter</span></div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <span class="comment">// determines the order in which quota'ed roles are allocated resources</span></div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="comment">// during Level 1 of the first stage. Quota'ed roles have resources</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="comment">// allocated up to their alloted quota (the first stage) prior to</span></div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="comment">// non-quota'ed roles (the second stage).</span></div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="comment">// NOTE: A role appears in `quotaRoleSorter` if it has a quota (even if</span></div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="comment">// no frameworks are currently registered in that role). In contrast,</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="comment">// `roleSorter` only contains entries for roles with one or more</span></div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="comment">// registered frameworks.</span></div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="comment">//</span></div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="comment">// NOTE: We do not include revocable resources in the quota role sorter,</span></div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="comment">// because the quota role sorter's job is to perform fair sharing between</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="comment">// the quota roles as it pertains to their level of quota satisfaction.</span></div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="comment">// Since revocable resources do not increase a role's level of satisfaction</span></div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="comment">// toward its quota, we choose to exclude them from the quota role sorter.</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#adc8f37c1d8b0394cc23178491d44c2e2"> 519</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<Sorter></a> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#adc8f37c1d8b0394cc23178491d44c2e2">quotaRoleSorter</a>;</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span> </div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="comment">// A collection of sorters, one per active role. Each sorter determines</span></div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="comment">// the order in which frameworks that belong to the same role are allocated</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <span class="comment">// resources inside the role's share. These sorters are used during Level 2</span></div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="comment">// for both the first and the second stages.</span></div>
-<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a286878cde1e175a044fb6bb934a9b941"> 525</a></span>  <a class="code" href="classhashmap.html">hashmap<std::string, process::Owned<Sorter></a>> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a286878cde1e175a044fb6bb934a9b941">frameworkSorters</a>;</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="comment">// Factory function for framework sorters.</span></div>
-<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a4612ef1ebd4f96f80e35a216a79e6a8d"> 528</a></span>  <span class="keyword">const</span> std::function<Sorter*()> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a4612ef1ebd4f96f80e35a216a79e6a8d">frameworkSorterFactory</a>;</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div>
-<div class="line"><a name="l00530"></a><span class="lineno"> 530</span> <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  <span class="keywordtype">bool</span> isFrameworkTrackedUnderRole(</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keyword">const</span> std::string& role) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordtype">void</span> trackFrameworkUnderRole(</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
-<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keyword">const</span> std::string& role);</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span> </div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keywordtype">void</span> untrackFrameworkUnderRole(</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keyword">const</span> std::string& role);</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span> </div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="comment">// Helper to update the agent's total resources maintained in the allocator</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="comment">// and the role and quota sorters (whose total resources match the agent's</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="comment">// total resources). Returns true iff the stored agent total was changed.</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keywordtype">bool</span> updateSlaveTotal(<span class="keyword">const</span> SlaveID& slaveId, <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& total);</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span> </div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  <span class="comment">// Helper that returns true if the given agent is located in a</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="comment">// different region than the master. This can only be the case if</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="comment">// the agent and the master are both configured with a fault domain.</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="keywordtype">bool</span> isRemoteSlave(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html">Slave</a>& slave) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  <span class="comment">// Helper to track allocated resources on an agent.</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="keywordtype">void</span> trackAllocatedResources(</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="keyword">const</span> SlaveID& slaveId,</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& allocated);</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  <span class="comment">// are allocated only to frameworks under roles with quota set. During</span></div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  <span class="comment">// the second stage remaining resources that would not be required to</span></div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="comment">// satisfy un-allocated quota are then allocated to frameworks under</span></div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="comment">// roles with no quota set.</span></div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <span class="comment">// Each stage comprises two levels of sorting, hence "hierarchical".</span></div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  <span class="comment">// Level 1 sorts across roles:</span></div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  <span class="comment">// Currently, only the allocated portion of the reserved resources are</span></div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="comment">// accounted for fairness calculation.</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="comment">// TODO(mpark): Reserved resources should be accounted for fairness</span></div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <span class="comment">// calculation whether they are allocated or not, since they model a long or</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="comment">// forever running task. That is, the effect of reserving resources is</span></div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="comment">// equivalent to launching a task in that the resources that make up the</span></div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="comment">// reservation are not available to other roles as non-revocable.</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="comment">// Level 2 sorts across frameworks within a particular role:</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="comment">// Reserved resources at this level are, and should be accounted for</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  <span class="comment">// fairness calculation only if they are allocated. This is because</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="comment">// reserved resources are fairly shared across the frameworks in the role.</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="comment">// The allocator relies on `Sorter`s to employ a particular sorting</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="comment">// algorithm. Each level has its own sorter and hence may have different</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="comment">// fairness calculations.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="comment">// NOTE: The hierarchical allocator considers revocable resources as</span></div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="comment">// regular resources when doing fairness calculations.</span></div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="comment">// TODO(vinod): Consider using a different fairness algorithm for</span></div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="comment">// revocable resources.</span></div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <span class="comment">// A sorter for active roles. This sorter determines the order in which</span></div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="comment">// roles are allocated resources during Level 1 of the second stage.</span></div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  <span class="comment">// The total cluster resources are used as the resource pool.</span></div>
+<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a890bb44d4f46f708e8df0514036d44ca"> 503</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<Sorter></a> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a890bb44d4f46f708e8df0514036d44ca">roleSorter</a>;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span> </div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="comment">// A dedicated sorter for roles for which quota is set. This sorter</span></div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="comment">// determines the order in which quota'ed roles are allocated resources</span></div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="comment">// during Level 1 of the first stage. Quota'ed roles have resources</span></div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  <span class="comment">// allocated up to their allocated quota (the first stage) prior to</span></div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="comment">// non-quota'ed roles (the second stage). Since only non-revocable</span></div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  <span class="comment">// resources are available for quota, the total cluster non-revocable</span></div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="comment">// resoures are used as the resource pool.</span></div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  <span class="comment">// NOTE: A role appears in `quotaRoleSorter` if it has a quota (even if</span></div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="comment">// no frameworks are currently registered in that role). In contrast,</span></div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="comment">// `roleSorter` only contains entries for roles with one or more</span></div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  <span class="comment">// registered frameworks.</span></div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  <span class="comment">//</span></div>
+<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  <span class="comment">// NOTE: We do not include revocable resources in the quota role sorter,</span></div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="comment">// because the quota role sorter's job is to perform fair sharing between</span></div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="comment">// the quota roles as it pertains to their level of quota satisfaction.</span></div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="comment">// Since revocable resources do not increase a role's level of satisfaction</span></div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  <span class="comment">// toward its quota, we choose to exclude them from the quota role sorter.</span></div>
+<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#adc8f37c1d8b0394cc23178491d44c2e2"> 523</a></span>  <a class="code" href="classprocess_1_1Owned.html">process::Owned<Sorter></a> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#adc8f37c1d8b0394cc23178491d44c2e2">quotaRoleSorter</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span> </div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="comment">// A collection of sorters, one per active role. Each sorter determines</span></div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  <span class="comment">// the order in which frameworks that belong to the same role are allocated</span></div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="comment">// resources inside the role's share. These sorters are used during Level 2</span></div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="comment">// for both the first and the second stages. Since frameworks are sharing</span></div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  <span class="comment">// the resources allocated to a role, the role's allocation is used as</span></div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="comment">// the resource pool for each role specific framework sorter.</span></div>
+<div class="line"><a name="l00531"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a286878cde1e175a044fb6bb934a9b941"> 531</a></span>  <a class="code" href="classhashmap.html">hashmap<std::string, process::Owned<Sorter></a>> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a286878cde1e175a044fb6bb934a9b941">frameworkSorters</a>;</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="comment">// Factory function for framework sorters.</span></div>
+<div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a4612ef1ebd4f96f80e35a216a79e6a8d"> 534</a></span>  <span class="keyword">const</span> std::function<Sorter*()> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a4612ef1ebd4f96f80e35a216a79e6a8d">frameworkSorterFactory</a>;</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span> <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordtype">bool</span> isFrameworkTrackedUnderRole(</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <span class="keyword">const</span> std::string& role) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordtype">void</span> trackFrameworkUnderRole(</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keyword">const</span> std::string& role);</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span> </div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  <span class="keywordtype">void</span> untrackFrameworkUnderRole(</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keyword">const</span> std::string& role);</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span> </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="comment">// Helper to update the agent's total resources maintained in the allocator</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="comment">// and the role and quota sorters (whose total resources match the agent's</span></div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="comment">// total resources). Returns true iff the stored agent total was changed.</span></div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keywordtype">bool</span> updateSlaveTotal(<span class="keyword">const</span> SlaveID& slaveId, <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& total);</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span> </div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  <span class="comment">// Helper that returns true if the given agent is located in a</span></div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  <span class="comment">// different region than the master. This can only be the case if</span></div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="comment">// the agent and the master are both configured with a fault domain.</span></div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  <span class="keywordtype">bool</span> isRemoteSlave(<span class="keyword">const</span> <a class="code" href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html">Slave</a>& slave) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span> </div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">// Helper to untrack resources that are no longer allocated on an agent.</span></div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordtype">void</span> untrackAllocatedResources(</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="comment">// Helper to track allocated resources on an agent.</span></div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordtype">void</span> trackAllocatedResources(</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keyword">const</span> SlaveID& slaveId,</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& allocated);</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> </div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="comment">// Helper that removes all existing offer filters for the given slave</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="comment">// id.</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordtype">void</span> removeFilters(<span class="keyword">const</span> SlaveID& slaveId);</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> };</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="comment">// Helper to untrack resources that are no longer allocated on an agent.</span></div>
+<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keywordtype">void</span> untrackAllocatedResources(</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keyword">const</span> SlaveID& slaveId,</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keyword">const</span> FrameworkID& frameworkId,</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keyword">const</span> <a class="code" href="classmesos_1_1Resources.html">Resources</a>& allocated);</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> </div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> } <span class="comment">// namespace internal {</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> <span class="comment">// We map the templatized version of the `HierarchicalAllocatorProcess` to one</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> <span class="comment">// that relies on sorter factories in the internal namespace. This allows us</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> <span class="comment">// to keep the implementation of the allocator in the implementation file.</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> <span class="keyword">template</span> <</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keyword">typename</span> RoleSorter,</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keyword">typename</span> FrameworkSorter,</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  <span class="keyword">typename</span> QuotaRoleSorter></div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html">HierarchicalAllocatorProcess</a></div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html">internal::HierarchicalAllocatorProcess</a></div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> {</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span> <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html#af1ad7f99497807e029ac8d2654abaa4f"> 585</a></span>  <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html#af1ad7f99497807e029ac8d2654abaa4f">HierarchicalAllocatorProcess</a>()</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  : <a class="code" href="classprocess_1_1ProcessBase.html#a318038bacd95e4260864533f7cfe12fd">ProcessBase</a>(<a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>::ID::<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span class="stringliteral">"hierarchical-allocator"</span>)),</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  internal::<a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html">HierarchicalAllocatorProcess</a>(</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  [this]() -> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1Sorter.html">Sorter</a>* {</div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">return</span> <span class="keyword">new</span> RoleSorter(this-><span class="keyword">self</span>(), <span class="stringliteral">"allocator/mesos/roles/"</span>);</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  },</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  []() -> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1Sorter.html">Sorter</a>* { <span class="keywordflow">return</span> <span class="keyword">new</span> FrameworkSorter(); },</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  []() -> Sorter* { <span class="keywordflow">return</span> <span class="keyword">new</span> QuotaRoleSorter(); }) {}</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span> };</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span> </div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span> } <span class="comment">// namespace allocator {</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span> } <span class="comment">// namespace master {</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span> } <span class="comment">// namespace internal {</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span> } <span class="comment">// namespace mesos {</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> </div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> <span class="preprocessor">#endif // __MASTER_ALLOCATOR_MESOS_HIERARCHICAL_HPP__</span></div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="comment">// Helper that removes all existing offer filters for the given slave</span></div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  <span class="comment">// id.</span></div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordtype">void</span> removeFilters(<span class="keyword">const</span> SlaveID& slaveId);</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span> };</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span> </div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span> </div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span> } <span class="comment">// namespace internal {</span></div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span> </div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span> <span class="comment">// We map the templatized version of the `HierarchicalAllocatorProcess` to one</span></div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span> <span class="comment">// that relies on sorter factories in the internal namespace. This allows us</span></div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span> <span class="comment">// to keep the implementation of the allocator in the implementation file.</span></div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="keyword">template</span> <</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keyword">typename</span> RoleSorter,</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  <span class="keyword">typename</span> FrameworkSorter,</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keyword">typename</span> QuotaRoleSorter></div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span> <span class="keyword">class </span><a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html">HierarchicalAllocatorProcess</a></div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  : <span class="keyword">public</span> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html">internal::HierarchicalAllocatorProcess</a></div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span> {</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span> <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html#af1ad7f99497807e029ac8d2654abaa4f"> 591</a></span>  <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html#af1ad7f99497807e029ac8d2654abaa4f">HierarchicalAllocatorProcess</a>()</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  : <a class="code" href="classprocess_1_1ProcessBase.html#a318038bacd95e4260864533f7cfe12fd">ProcessBase</a>(<a class="code" href="namespaceos.html#ae19e4161a51b86a1f330f3bf1dc75389">process</a>::ID::<a class="code" href="namespaceprocess_1_1ID.html#aeb11a48c9def1da169d8455a30d0ee39">generate</a>(<span class="stringliteral">"hierarchical-allocator"</span>)),</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  internal::<a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html">HierarchicalAllocatorProcess</a>(</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  [this]() -> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1Sorter.html">Sorter</a>* {</div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  <span class="keywordflow">return</span> <span class="keyword">new</span> RoleSorter(this-><span class="keyword">self</span>(), <span class="stringliteral">"allocator/mesos/roles/"</span>);</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  },</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  []() -> <a class="code" href="classmesos_1_1internal_1_1master_1_1allocator_1_1Sorter.html">Sorter</a>* { <span class="keywordflow">return</span> <span class="keyword">new</span> FrameworkSorter(); },</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  []() -> Sorter* { <span class="keywordflow">return</span> <span class="keyword">new</span> QuotaRoleSorter(); }) {}</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span> };</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span> </div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span> } <span class="comment">// namespace allocator {</span></div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span> } <span class="comment">// namespace master {</span></div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span> } <span class="comment">// namespace internal {</span></div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span> } <span class="comment">// namespace mesos {</span></div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span> </div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span> <span class="preprocessor">#endif // __MASTER_ALLOCATOR_MESOS_HIERARCHICAL_HPP__</span></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a2b43be40bc7ad484b83b055d13cf65b4"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a2b43be40bc7ad484b83b055d13cf65b4">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::allocation</a></div><div class="ttdeci">Option< process::Future< Nothing > > allocation</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:439</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_ab4dcf0920448f674bd9c71d4eb40dd6b"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#ab4dcf0920448f674bd9c71d4eb40dd6b">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::recoverResources</a></div><div class="ttdeci">void recoverResources(const FrameworkID &frameworkId, const SlaveID &slaveId, const Resources &resources, const Option< Filters > &filters)</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1master_1_1allocator_html_afd3f57eb292f0dcfaf611c06f874ec7f"><div class="ttname"><a href="namespacemesos_1_1internal_1_1master_1_1allocator.html#afd3f57eb292f0dcfaf611c06f874ec7f">mesos::internal::master::allocator::HierarchicalDRFAllocatorProcess</a></div><div class="ttdeci">HierarchicalAllocatorProcess< DRFSorter, DRFSorter, DRFSorter > HierarchicalDRFAllocatorProcess</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:55</div></div>
@@ -671,7 +677,7 @@
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_ac6adbe7f44a82c49396888a88b8073d4"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#ac6adbe7f44a82c49396888a88b8073d4">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::suppressOffers</a></div><div class="ttdeci">void suppressOffers(const FrameworkID &frameworkId, const std::set< std::string > &roles)</div></div>
<div class="ttc" id="classhashset_html"><div class="ttname"><a href="classhashset.html">hashset< std::string ></a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_html_a48c1b27dd3c249141df18a3bd346a36d"><div class="ttname"><a href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html#a48c1b27dd3c249141df18a3bd346a36d">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::Slave::info</a></div><div class="ttdeci">SlaveInfo info</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:389</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a286878cde1e175a044fb6bb934a9b941"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a286878cde1e175a044fb6bb934a9b941">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::frameworkSorters</a></div><div class="ttdeci">hashmap< std::string, process::Owned< Sorter > > frameworkSorters</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:525</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a286878cde1e175a044fb6bb934a9b941"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a286878cde1e175a044fb6bb934a9b941">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::frameworkSorters</a></div><div class="ttdeci">hashmap< std::string, process::Owned< Sorter > > frameworkSorters</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:531</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_aaa1ce6cba8a90007ee2c9d2f87dae895"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#aaa1ce6cba8a90007ee2c9d2f87dae895">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::updateAllocation</a></div><div class="ttdeci">void updateAllocation(const FrameworkID &frameworkId, const SlaveID &slaveId, const Resources &offeredResources, const std::vector< ResourceConversion > &conversions)</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities_html"><div class="ttname"><a href="structmesos_1_1internal_1_1protobuf_1_1slave_1_1Capabilities.html">mesos::internal::protobuf::slave::Capabilities</a></div><div class="ttdef"><b>Definition:</b> protobuf_utils.hpp:246</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a3ad2f1c1ed3395ca6e5d4668f7d65b16"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a3ad2f1c1ed3395ca6e5d4668f7d65b16">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::activateFramework</a></div><div class="ttdeci">void activateFramework(const FrameworkID &frameworkId)</div></div>
@@ -681,7 +687,7 @@
<div class="ttc" id="namespaceproc_html_a34396c6140a28f583dc13fee3c3c35d4"><div class="ttname"><a href="namespaceproc.html#a34396c6140a28f583dc13fee3c3c35d4">proc::status</a></div><div class="ttdeci">Result< ProcessStatus > status(pid_t pid)</div><div class="ttdef"><b>Definition:</b> proc.hpp:166</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a9487bd3b10f4c8c3837551c961497bf6"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a9487bd3b10f4c8c3837551c961497bf6">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::expectedAgentCount</a></div><div class="ttdeci">Option< int > expectedAgentCount</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:289</div></div>
<div class="ttc" id="classmesos_1_1Resources_html"><div class="ttname"><a href="classmesos_1_1Resources.html">mesos::Resources</a></div><div class="ttdef"><b>Definition:</b> resources.hpp:79</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess_html_af1ad7f99497807e029ac8d2654abaa4f"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html#af1ad7f99497807e029ac8d2654abaa4f">mesos::internal::master::allocator::HierarchicalAllocatorProcess::HierarchicalAllocatorProcess</a></div><div class="ttdeci">HierarchicalAllocatorProcess()</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:585</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess_html_af1ad7f99497807e029ac8d2654abaa4f"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1HierarchicalAllocatorProcess.html#af1ad7f99497807e029ac8d2654abaa4f">mesos::internal::master::allocator::HierarchicalAllocatorProcess::HierarchicalAllocatorProcess</a></div><div class="ttdeci">HierarchicalAllocatorProcess()</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:591</div></div>
<div class="ttc" id="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_html_a8ba5026ba665b3c0f8c52ea3f101c24d"><div class="ttname"><a href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html#a8ba5026ba665b3c0f8c52ea3f101c24d">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::Slave::activated</a></div><div class="ttdeci">bool activated</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:383</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a9e122112ca8eca4b89e0597ebafb6056"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a9e122112ca8eca4b89e0597ebafb6056">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::resume</a></div><div class="ttdeci">void resume()</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_abf75366546bda737ba22d994b6a7fb20"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#abf75366546bda737ba22d994b6a7fb20">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::slaves</a></div><div class="ttdeci">hashmap< SlaveID, Slave > slaves</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:430</div></div>
@@ -691,12 +697,12 @@
<div class="ttc" id="classDuration_html"><div class="ttname"><a href="classDuration.html">Duration</a></div><div class="ttdef"><b>Definition:</b> duration.hpp:32</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a71547c982e85db6b83e562732107f578"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a71547c982e85db6b83e562732107f578">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::isFiltered</a></div><div class="ttdeci">bool isFiltered(const FrameworkID &frameworkId, const std::string &role, const SlaveID &slaveId, const Resources &resources) const </div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1MesosAllocator_html"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1MesosAllocator.html">mesos::internal::master::allocator::MesosAllocator</a></div><div class="ttdef"><b>Definition:</b> allocator.hpp:41</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_adc8f37c1d8b0394cc23178491d44c2e2"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#adc8f37c1d8b0394cc23178491d44c2e2">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::quotaRoleSorter</a></div><div class="ttdeci">process::Owned< Sorter > quotaRoleSorter</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:519</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_adc8f37c1d8b0394cc23178491d44c2e2"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#adc8f37c1d8b0394cc23178491d44c2e2">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::quotaRoleSorter</a></div><div class="ttdeci">process::Owned< Sorter > quotaRoleSorter</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:523</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a0e5859a3d12ed5e1ef6bf5ae1efe7525"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a0e5859a3d12ed5e1ef6bf5ae1efe7525">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::pause</a></div><div class="ttdeci">void pause()</div></div>
<div class="ttc" id="lambda_8hpp_html"><div class="ttname"><a href="lambda_8hpp.html">lambda.hpp</a></div></div>
<div class="ttc" id="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave_html_aa1d48cbee5fd1c7d1764b8e37fe4d4e9"><div class="ttname"><a href="structmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_1_1Slave.html#aa1d48cbee5fd1c7d1764b8e37fe4d4e9">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::Slave::total</a></div><div class="ttdeci">Resources total</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:351</div></div>
<div class="ttc" id="namespacemesos_1_1internal_1_1master_1_1allocator_html_a2697b55e9bb55b527e433d5e378ea4ba"><div class="ttname"><a href="namespacemesos_1_1internal_1_1master_1_1allocator.html#a2697b55e9bb55b527e433d5e378ea4ba">mesos::internal::master::allocator::HierarchicalDRFAllocator</a></div><div class="ttdeci">MesosAllocator< HierarchicalDRFAllocatorProcess > HierarchicalDRFAllocator</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:61</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a4612ef1ebd4f96f80e35a216a79e6a8d"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a4612ef1ebd4f96f80e35a216a79e6a8d">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::frameworkSorterFactory</a></div><div class="ttdeci">const std::function< Sorter *()> frameworkSorterFactory</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:528</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a4612ef1ebd4f96f80e35a216a79e6a8d"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a4612ef1ebd4f96f80e35a216a79e6a8d">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::frameworkSorterFactory</a></div><div class="ttdeci">const std::function< Sorter *()> frameworkSorterFactory</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:534</div></div>
<div class="ttc" id="classhashmap_html"><div class="ttname"><a href="classhashmap.html">hashmap</a></div><div class="ttdef"><b>Definition:</b> hashmap.hpp:38</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a967e320b1d5dd56a1dec05dc3aaa58a2"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a967e320b1d5dd56a1dec05dc3aaa58a2">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::_offer_filters_active</a></div><div class="ttdeci">double _offer_filters_active(const std::string &role)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a95e4fd793218cdaa228b89c10bef2343"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a95e4fd793218cdaa228b89c10bef2343">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::requestResources</a></div><div class="ttdeci">void requestResources(const FrameworkID &frameworkId, const std::vector< Request > &requests)</div></div>
@@ -707,7 +713,7 @@
<div class="ttc" id="namespacemesos_1_1internal_1_1master_1_1maintenance_1_1validation_html_a766d3749f894fce457b084746f0ba868"><div class="ttname"><a href="namespacemesos_1_1internal_1_1master_1_1maintenance_1_1validation.html#a766d3749f894fce457b084746f0ba868">mesos::internal::master::maintenance::validation::unavailability</a></div><div class="ttdeci">Try< Nothing > unavailability(const Unavailability &unavailability)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_abe0733932a78d03ec3c94ae0d71605ba"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#abe0733932a78d03ec3c94ae0d71605ba">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::updateUnavailability</a></div><div class="ttdeci">void updateUnavailability(const SlaveID &slaveId, const Option< Unavailability > &unavailability)</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess</a></div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:73</div></div>
-<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a890bb44d4f46f708e8df0514036d44ca"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a890bb44d4f46f708e8df0514036d44ca">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::roleSorter</a></div><div class="ttdeci">process::Owned< Sorter > roleSorter</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:501</div></div>
+<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a890bb44d4f46f708e8df0514036d44ca"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a890bb44d4f46f708e8df0514036d44ca">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::roleSorter</a></div><div class="ttdeci">process::Owned< Sorter > roleSorter</div><div class="ttdef"><b>Definition:</b> hierarchical.hpp:503</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_a2928f839fd010669924789c6cccd0829"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#a2928f839fd010669924789c6cccd0829">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::expire</a></div><div class="ttdeci">void expire(const FrameworkID &frameworkId, const std::string &role, const SlaveID &slaveId, OfferFilter *offerFilter)</div></div>
<div class="ttc" id="namespacerouting_1_1filter_1_1internal_html_a646d4e3238d83329525957b5a5586be2"><div class="ttname"><a href="namespacerouting_1_1filter_1_1internal.html#a646d4e3238d83329525957b5a5586be2">routing::filter::internal::filters</a></div><div class="ttdeci">Result< std::vector< Filter< Classifier > > > filters(const std::string &_link, const Handle &parent)</div><div class="ttdef"><b>Definition:</b> internal.hpp:776</div></div>
<div class="ttc" id="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess_html_ad50746d75024b2b7dbf7ebfca00655e8"><div class="ttname"><a href="classmesos_1_1internal_1_1master_1_1allocator_1_1internal_1_1HierarchicalAllocatorProcess.html#ad50746d75024b2b7dbf7ebfca00655e8">mesos::internal::master::allocator::internal::HierarchicalAllocatorProcess::allocate</a></div><div class="ttdeci">process::Future< Nothing > allocate()</div></div>