You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2016/02/09 20:00:58 UTC

[3/6] mesos git commit: Restructured comments in allocator tests for clarity.

Restructured comments in allocator tests for clarity.

We now describe the cluster state **after** we induce such a
state, rather than before.

Review: https://reviews.apache.org/r/42658/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/c2c41e46
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/c2c41e46
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/c2c41e46

Branch: refs/heads/master
Commit: c2c41e46358163243e3b4a66bfbccfdbc0302e0c
Parents: d85412e
Author: Alexander Rukletsov <ru...@gmail.com>
Authored: Tue Feb 9 18:37:41 2016 +0100
Committer: Benjamin Mahler <be...@gmail.com>
Committed: Tue Feb 9 20:00:42 2016 +0100

----------------------------------------------------------------------
 src/tests/hierarchical_allocator_tests.cpp | 102 +++++++++++-------------
 1 file changed, 48 insertions(+), 54 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/c2c41e46/src/tests/hierarchical_allocator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hierarchical_allocator_tests.cpp b/src/tests/hierarchical_allocator_tests.cpp
index 8183135..f09517d 100644
--- a/src/tests/hierarchical_allocator_tests.cpp
+++ b/src/tests/hierarchical_allocator_tests.cpp
@@ -544,12 +544,6 @@ TEST_F(HierarchicalAllocatorTest, SmallOfferFilterTimeout)
 
   initialize(flags_);
 
-  // We start with the following cluster setup.
-  // Total cluster resources (1 agent): cpus=1, mem=512.
-  // ROLE1 share = 1 (cpus=1, mem=512)
-  //   framework1 share = 1 (cpus=1, mem=512)
-  //   framework2 share = 0
-
   FrameworkInfo framework1 = createFrameworkInfo(ROLE);
   FrameworkInfo framework2 = createFrameworkInfo(ROLE);
 
@@ -577,6 +571,11 @@ TEST_F(HierarchicalAllocatorTest, SmallOfferFilterTimeout)
   // NOTE: No allocations happen because there are no resources to allocate.
   Clock::settle();
 
+  // Total cluster resources (1 agent): cpus=1, mem=512.
+  // ROLE1 share = 1 (cpus=1, mem=512)
+  //   framework1 share = 1 (cpus=1, mem=512)
+  //   framework2 share = 0
+
   // Add one more agent with some free resources.
   SlaveInfo agent2 = createSlaveInfo("cpus:1;mem:512;disk:0");
   allocator->addSlave(
@@ -1549,13 +1548,6 @@ TEST_F(HierarchicalAllocatorTest, RemoveQuota)
 
   initialize();
 
-  // We start with the following cluster setup.
-  // Total cluster resources (2 identical agents): cpus=2, mem=1024.
-  // QUOTA_ROLE share = 1 (cpus=2, mem=1024) [quota: cpus=2, mem=1024]
-  //   framework1 share = 1
-  // NO_QUOTA_ROLE share = 0
-  //   framework2 share = 0
-
   // Create framework and agent descriptions.
   FrameworkInfo framework1 = createFrameworkInfo(QUOTA_ROLE);
   FrameworkInfo framework2 = createFrameworkInfo(NO_QUOTA_ROLE);
@@ -1592,6 +1584,12 @@ TEST_F(HierarchicalAllocatorTest, RemoveQuota)
       agent2.resources(),
       {std::make_pair(framework1.id(), agent2.resources())});
 
+  // Total cluster resources (2 identical agents): cpus=2, mem=1024.
+  // QUOTA_ROLE share = 1 (cpus=2, mem=1024) [quota: cpus=2, mem=1024]
+  //   framework1 share = 1
+  // NO_QUOTA_ROLE share = 0
+  //   framework2 share = 0
+
   // All cluster resources are now being used by `framework1` as part of
   // its role quota, no further allocations are expected. However, once the
   // quota is removed, quota guarantee does not apply any more and released
@@ -1820,13 +1818,6 @@ TEST_F(HierarchicalAllocatorTest, DRFWithQuota)
 
   initialize();
 
-  // We start with the following cluster setup.
-  // Total cluster resources (1 agent): cpus=1, mem=512.
-  // QUOTA_ROLE share = 0.25 (cpus=0.25, mem=128) [quota: cpus=0.25, mem=128]
-  //   framework1 share = 1
-  // NO_QUOTA_ROLE share = 0
-  //   framework2 share = 0
-
   // Create framework and agent descriptions.
   FrameworkInfo framework1 = createFrameworkInfo(QUOTA_ROLE);
   FrameworkInfo framework2 = createFrameworkInfo(NO_QUOTA_ROLE);
@@ -1860,6 +1851,12 @@ TEST_F(HierarchicalAllocatorTest, DRFWithQuota)
       agent1.resources(),
       {std::make_pair(framework1.id(), Resources(quota1.info.guarantee()))});
 
+  // Total cluster resources (1 agent): cpus=1, mem=512.
+  // QUOTA_ROLE share = 0.25 (cpus=0.25, mem=128) [quota: cpus=0.25, mem=128]
+  //   framework1 share = 1
+  // NO_QUOTA_ROLE share = 0
+  //   framework2 share = 0
+
   // Some resources on `agent1` are now being used by `framework1` as part
   // of its role quota. All quotas are satisfied, all available resources
   // should be allocated according to fair shares of roles and frameworks.
@@ -1918,13 +1915,6 @@ TEST_F(HierarchicalAllocatorTest, QuotaAgainstStarvation)
 
   initialize();
 
-  // We start with the following cluster setup.
-  // Total cluster resources (2 identical agents): cpus=2, mem=1024.
-  // QUOTA_ROLE share = 0.5 (cpus=1, mem=512)
-  //   framework1 share = 1
-  // NO_QUOTA_ROLE share = 0
-  //   framework2 share = 0
-
   // Create framework and agent descriptions.
   FrameworkInfo framework1 = createFrameworkInfo(QUOTA_ROLE);
   FrameworkInfo framework2 = createFrameworkInfo(NO_QUOTA_ROLE);
@@ -1955,6 +1945,12 @@ TEST_F(HierarchicalAllocatorTest, QuotaAgainstStarvation)
   // NOTE: No allocations happen because all resources are already allocated.
   Clock::settle();
 
+  // Total cluster resources (1 agent): cpus=1, mem=512.
+  // QUOTA_ROLE share = 1 (cpus=1, mem=512)
+  //   framework1 share = 1
+  // NO_QUOTA_ROLE share = 0
+  //   framework2 share = 0
+
   allocator->addSlave(
       agent2.id(),
       agent2,
@@ -2047,13 +2043,6 @@ TEST_F(HierarchicalAllocatorTest, QuotaAbsentFramework)
 
   initialize();
 
-  // We start with the following cluster setup.
-  // Total cluster resources (2 agents): cpus=3, mem=1536.
-  // QUOTA_ROLE share = 0 [quota: cpus=2, mem=1024]
-  //   no frameworks
-  // NO_QUOTA_ROLE share = 0
-  //   framework share = 1
-
   // Set quota for the quota'ed role. This role isn't registered with
   // the allocator yet.
   const Quota quota1 = createQuota(QUOTA_ROLE, "cpus:2;mem:1024");
@@ -2072,6 +2061,12 @@ TEST_F(HierarchicalAllocatorTest, QuotaAbsentFramework)
   SlaveInfo agent1 = createSlaveInfo("cpus:2;mem:1024;disk:0");
   SlaveInfo agent2 = createSlaveInfo("cpus:1;mem:512;disk:0");
 
+  // Total cluster resources (0 agents): 0.
+  // QUOTA_ROLE share = 0 [quota: cpus=2, mem=1024]
+  //   no frameworks
+  // NO_QUOTA_ROLE share = 0
+  //   framework share = 0
+
   // Each `addSlave()` triggers an event-based allocation.
   //
   // NOTE: The second event-based allocation for `agent2` takes into account
@@ -2080,13 +2075,6 @@ TEST_F(HierarchicalAllocatorTest, QuotaAbsentFramework)
   allocator->addSlave(agent1.id(), agent1, None(), agent1.resources(), EMPTY);
   allocator->addSlave(agent2.id(), agent2, None(), agent2.resources(), EMPTY);
 
-  // Total cluster resources (2 agents): cpus=3, mem=1536.
-  // QUOTA_ROLE share = 0 [quota: cpus=2, mem=1024], but
-  //                    some resources (cpus=2, mem=1024) are laid away
-  //   no frameworks
-  // NO_QUOTA_ROLE share = 0.33
-  //   framework share = 1 (cpus=1, mem=512)
-
   // `framework` can only be allocated resources on `agent2`. This
   // is due to the coarse-grained nature of the allocations. All the
   // free resources on `agent1` would be considered to construct an
@@ -2101,6 +2089,13 @@ TEST_F(HierarchicalAllocatorTest, QuotaAbsentFramework)
   AWAIT_READY(allocation);
   EXPECT_EQ(framework.id(), allocation.get().frameworkId);
   EXPECT_EQ(agent2.resources(), Resources::sum(allocation.get().resources));
+
+  // Total cluster resources (2 agents): cpus=3, mem=1536.
+  // QUOTA_ROLE share = 0 [quota: cpus=2, mem=1024], but
+  //                    (cpus=2, mem=1024) are laid away
+  //   no frameworks
+  // NO_QUOTA_ROLE share = 0.33
+  //   framework share = 1 (cpus=1, mem=512)
 }
 
 
@@ -2171,13 +2166,6 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaWithFrameworks)
 
   initialize();
 
-  // We start with the following cluster setup.
-  // Total cluster resources (2 identical agents): cpus=2, mem=2048.
-  // QUOTA_ROLE1 share = 0.5 (cpus=1, mem=1024) [quota: cpus=1, mem=200]
-  //   framework1 share = 1
-  // QUOTA_ROLE2 share = 0.5 (cpus=1, mem=1024) [quota: cpus=2, mem=2000]
-  //   framework2 share = 1
-
   SlaveInfo agent1 = createSlaveInfo("cpus:1;mem:1024;disk:0");
   SlaveInfo agent2 = createSlaveInfo("cpus:1;mem:1024;disk:0");
 
@@ -2217,6 +2205,12 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaWithFrameworks)
       agent2.resources(),
       {std::make_pair(framework2.id(), agent2.resources())});
 
+  // Total cluster resources (2 identical agents): cpus=2, mem=2048.
+  // QUOTA_ROLE1 share = 0.5 (cpus=1, mem=1024) [quota: cpus=1, mem=200]
+  //   framework1 share = 1
+  // QUOTA_ROLE2 share = 0.5 (cpus=1, mem=1024) [quota: cpus=2, mem=2000]
+  //   framework2 share = 1
+
   // Quota for the `QUOTA_ROLE1` role is satisfied, while `QUOTA_ROLE2` is
   // under quota. Hence resources of the newly added agent should be offered
   // to the framework in `QUOTA_ROLE2`.
@@ -2230,18 +2224,18 @@ TEST_F(HierarchicalAllocatorTest, MultiQuotaWithFrameworks)
       agent3.resources(),
       EMPTY);
 
-  // Total cluster resources (3 agents): cpus=4, mem=4096.
-  // QUOTA_ROLE1 share = 0.25 (cpus=1, mem=1024) [quota: cpus=1, mem=200]
-  //   framework1 share = 1
-  // QUOTA_ROLE2 share = 0.75 (cpus=3, mem=3072) [quota: cpus=2, mem=2000]
-  //   framework2 share = 1
-
   // `framework2` will get all agent3's resources because its role is under
   // quota, while other roles' quotas are satisfied.
   Future<Allocation> allocation = allocations.get();
   AWAIT_READY(allocation);
   EXPECT_EQ(framework2.id(), allocation.get().frameworkId);
   EXPECT_EQ(agent3.resources(), Resources::sum(allocation.get().resources));
+
+  // Total cluster resources (3 agents): cpus=4, mem=4096.
+  // QUOTA_ROLE1 share = 0.25 (cpus=1, mem=1024) [quota: cpus=1, mem=200]
+  //   framework1 share = 1
+  // QUOTA_ROLE2 share = 0.75 (cpus=3, mem=3072) [quota: cpus=2, mem=2000]
+  //   framework2 share = 1
 }