|
@@ -351,7 +351,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Only 1 container
|
|
// Only 1 container
|
|
a.assignContainers(clusterResource, node_0, new ResourceLimits(
|
|
a.assignContainers(clusterResource, node_0, new ResourceLimits(
|
|
- clusterResource));
|
|
|
|
|
|
+ clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(
|
|
assertEquals(
|
|
(int)(node_0.getTotalResource().getMemory() * a.getCapacity()) - (1*GB),
|
|
(int)(node_0.getTotalResource().getMemory() * a.getCapacity()) - (1*GB),
|
|
a.getMetrics().getAvailableMB());
|
|
a.getMetrics().getAvailableMB());
|
|
@@ -487,7 +487,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Only 1 container
|
|
// Only 1 container
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -498,7 +498,7 @@ public class TestLeafQueue {
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// you can get one container more than user-limit
|
|
// you can get one container more than user-limit
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -507,7 +507,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Can't allocate 3rd due to user-limit
|
|
// Can't allocate 3rd due to user-limit
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -517,7 +517,7 @@ public class TestLeafQueue {
|
|
// Bump up user-limit-factor, now allocate should work
|
|
// Bump up user-limit-factor, now allocate should work
|
|
a.setUserLimitFactor(10);
|
|
a.setUserLimitFactor(10);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -526,7 +526,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// One more should work, for app_1, due to user-limit-factor
|
|
// One more should work, for app_1, due to user-limit-factor
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -537,7 +537,7 @@ public class TestLeafQueue {
|
|
// Now - no more allocs since we are at max-cap
|
|
// Now - no more allocs since we are at max-cap
|
|
a.setMaxCapacity(0.5f);
|
|
a.setMaxCapacity(0.5f);
|
|
a.assignContainers(clusterResource, node_0, new ResourceLimits(
|
|
a.assignContainers(clusterResource, node_0, new ResourceLimits(
|
|
- clusterResource));
|
|
|
|
|
|
+ clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -653,21 +653,21 @@ public class TestLeafQueue {
|
|
|
|
|
|
// 1 container to user_0
|
|
// 1 container to user_0
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
|
|
|
|
// Again one to user_0 since he hasn't exceeded user limit yet
|
|
// Again one to user_0 since he hasn't exceeded user limit yet
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
|
|
|
|
// One more to user_0 since he is the only active user
|
|
// One more to user_0 since he is the only active user
|
|
a.assignContainers(clusterResource, node_1,
|
|
a.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -719,10 +719,10 @@ public class TestLeafQueue {
|
|
1, qb.getActiveUsersManager().getNumActiveUsers());
|
|
1, qb.getActiveUsersManager().getNumActiveUsers());
|
|
//get headroom
|
|
//get headroom
|
|
qb.assignContainers(clusterResource, node_0,
|
|
qb.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
qb.computeUserLimitAndSetHeadroom(app_0, clusterResource, app_0
|
|
qb.computeUserLimitAndSetHeadroom(app_0, clusterResource, app_0
|
|
.getResourceRequest(u0Priority, ResourceRequest.ANY).getCapability(),
|
|
.getResourceRequest(u0Priority, ResourceRequest.ANY).getCapability(),
|
|
- null);
|
|
|
|
|
|
+ "", SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
|
|
|
|
//maxqueue 16G, userlimit 13G, - 4G used = 9G
|
|
//maxqueue 16G, userlimit 13G, - 4G used = 9G
|
|
assertEquals(9*GB,app_0.getHeadroom().getMemory());
|
|
assertEquals(9*GB,app_0.getHeadroom().getMemory());
|
|
@@ -739,10 +739,10 @@ public class TestLeafQueue {
|
|
u1Priority, recordFactory)));
|
|
u1Priority, recordFactory)));
|
|
qb.submitApplicationAttempt(app_2, user_1);
|
|
qb.submitApplicationAttempt(app_2, user_1);
|
|
qb.assignContainers(clusterResource, node_1,
|
|
qb.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
qb.computeUserLimitAndSetHeadroom(app_0, clusterResource, app_0
|
|
qb.computeUserLimitAndSetHeadroom(app_0, clusterResource, app_0
|
|
.getResourceRequest(u0Priority, ResourceRequest.ANY).getCapability(),
|
|
.getResourceRequest(u0Priority, ResourceRequest.ANY).getCapability(),
|
|
- null);
|
|
|
|
|
|
+ "", SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
|
|
|
|
assertEquals(8*GB, qb.getUsedResources().getMemory());
|
|
assertEquals(8*GB, qb.getUsedResources().getMemory());
|
|
assertEquals(4*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_0.getCurrentConsumption().getMemory());
|
|
@@ -782,12 +782,12 @@ public class TestLeafQueue {
|
|
qb.submitApplicationAttempt(app_1, user_0);
|
|
qb.submitApplicationAttempt(app_1, user_0);
|
|
qb.submitApplicationAttempt(app_3, user_1);
|
|
qb.submitApplicationAttempt(app_3, user_1);
|
|
qb.assignContainers(clusterResource, node_0,
|
|
qb.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
qb.assignContainers(clusterResource, node_0,
|
|
qb.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
qb.computeUserLimitAndSetHeadroom(app_3, clusterResource, app_3
|
|
qb.computeUserLimitAndSetHeadroom(app_3, clusterResource, app_3
|
|
.getResourceRequest(u1Priority, ResourceRequest.ANY).getCapability(),
|
|
.getResourceRequest(u1Priority, ResourceRequest.ANY).getCapability(),
|
|
- null);
|
|
|
|
|
|
+ "", SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(4*GB, qb.getUsedResources().getMemory());
|
|
assertEquals(4*GB, qb.getUsedResources().getMemory());
|
|
//maxqueue 16G, userlimit 7G, used (by each user) 2G, headroom 5G (both)
|
|
//maxqueue 16G, userlimit 7G, used (by each user) 2G, headroom 5G (both)
|
|
assertEquals(5*GB, app_3.getHeadroom().getMemory());
|
|
assertEquals(5*GB, app_3.getHeadroom().getMemory());
|
|
@@ -803,13 +803,13 @@ public class TestLeafQueue {
|
|
TestUtils.createResourceRequest(ResourceRequest.ANY, 6*GB, 1, true,
|
|
TestUtils.createResourceRequest(ResourceRequest.ANY, 6*GB, 1, true,
|
|
u0Priority, recordFactory)));
|
|
u0Priority, recordFactory)));
|
|
qb.assignContainers(clusterResource, node_1,
|
|
qb.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
qb.computeUserLimitAndSetHeadroom(app_4, clusterResource, app_4
|
|
qb.computeUserLimitAndSetHeadroom(app_4, clusterResource, app_4
|
|
.getResourceRequest(u0Priority, ResourceRequest.ANY).getCapability(),
|
|
.getResourceRequest(u0Priority, ResourceRequest.ANY).getCapability(),
|
|
- null);
|
|
|
|
|
|
+ "", SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
qb.computeUserLimitAndSetHeadroom(app_3, clusterResource, app_3
|
|
qb.computeUserLimitAndSetHeadroom(app_3, clusterResource, app_3
|
|
.getResourceRequest(u1Priority, ResourceRequest.ANY).getCapability(),
|
|
.getResourceRequest(u1Priority, ResourceRequest.ANY).getCapability(),
|
|
- null);
|
|
|
|
|
|
+ "", SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
|
|
|
|
|
|
|
|
//app3 is user1, active from last test case
|
|
//app3 is user1, active from last test case
|
|
@@ -876,7 +876,7 @@ public class TestLeafQueue {
|
|
priority, recordFactory)));
|
|
priority, recordFactory)));
|
|
|
|
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -893,7 +893,7 @@ public class TestLeafQueue {
|
|
priority, recordFactory)));
|
|
priority, recordFactory)));
|
|
|
|
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -982,7 +982,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// 1 container to user_0
|
|
// 1 container to user_0
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -993,7 +993,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Again one to user_0 since he hasn't exceeded user limit yet
|
|
// Again one to user_0 since he hasn't exceeded user limit yet
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1010,7 +1010,7 @@ public class TestLeafQueue {
|
|
// No more to user_0 since he is already over user-limit
|
|
// No more to user_0 since he is already over user-limit
|
|
// and no more containers to queue since it's already at max-cap
|
|
// and no more containers to queue since it's already at max-cap
|
|
a.assignContainers(clusterResource, node_1,
|
|
a.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1024,7 +1024,7 @@ public class TestLeafQueue {
|
|
priority, recordFactory)));
|
|
priority, recordFactory)));
|
|
assertEquals(1, a.getActiveUsersManager().getNumActiveUsers());
|
|
assertEquals(1, a.getActiveUsersManager().getNumActiveUsers());
|
|
a.assignContainers(clusterResource, node_1,
|
|
a.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(0*GB, app_2.getHeadroom().getMemory()); // hit queue max-cap
|
|
assertEquals(0*GB, app_2.getHeadroom().getMemory()); // hit queue max-cap
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1095,7 +1095,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Only 1 container
|
|
// Only 1 container
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1103,7 +1103,7 @@ public class TestLeafQueue {
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// you can get one container more than user-limit
|
|
// you can get one container more than user-limit
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1111,7 +1111,7 @@ public class TestLeafQueue {
|
|
// Can't allocate 3rd due to user-limit
|
|
// Can't allocate 3rd due to user-limit
|
|
a.setUserLimit(25);
|
|
a.setUserLimit(25);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1130,7 +1130,7 @@ public class TestLeafQueue {
|
|
// user_0 is at limit inspite of high user-limit-factor
|
|
// user_0 is at limit inspite of high user-limit-factor
|
|
a.setUserLimitFactor(10);
|
|
a.setUserLimitFactor(10);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1140,7 +1140,7 @@ public class TestLeafQueue {
|
|
// Now allocations should goto app_0 since
|
|
// Now allocations should goto app_0 since
|
|
// user_0 is at user-limit not above it
|
|
// user_0 is at user-limit not above it
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1151,7 +1151,7 @@ public class TestLeafQueue {
|
|
// Now - no more allocs since we are at max-cap
|
|
// Now - no more allocs since we are at max-cap
|
|
a.setMaxCapacity(0.5f);
|
|
a.setMaxCapacity(0.5f);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1163,7 +1163,7 @@ public class TestLeafQueue {
|
|
a.setMaxCapacity(1.0f);
|
|
a.setMaxCapacity(1.0f);
|
|
a.setUserLimitFactor(1);
|
|
a.setUserLimitFactor(1);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(7*GB, a.getUsedResources().getMemory());
|
|
assertEquals(7*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1172,7 +1172,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Now we should assign to app_3 again since user_2 is under user-limit
|
|
// Now we should assign to app_3 again since user_2 is under user-limit
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(8*GB, a.getUsedResources().getMemory());
|
|
assertEquals(8*GB, a.getUsedResources().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(3*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1272,7 +1272,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Only 1 container
|
|
// Only 1 container
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1283,7 +1283,7 @@ public class TestLeafQueue {
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// you can get one container more than user-limit
|
|
// you can get one container more than user-limit
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1292,7 +1292,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Now, reservation should kick in for app_1
|
|
// Now, reservation should kick in for app_1
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1309,7 +1309,7 @@ public class TestLeafQueue {
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
RMContainerEventType.KILL, null, true);
|
|
RMContainerEventType.KILL, null, true);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1326,7 +1326,7 @@ public class TestLeafQueue {
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
RMContainerEventType.KILL, null, true);
|
|
RMContainerEventType.KILL, null, true);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(4*GB, a.getUsedResources().getMemory());
|
|
assertEquals(0*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1394,7 +1394,7 @@ public class TestLeafQueue {
|
|
// Start testing...
|
|
// Start testing...
|
|
|
|
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1404,7 +1404,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Now, reservation should kick in for app_1
|
|
// Now, reservation should kick in for app_1
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1418,7 +1418,7 @@ public class TestLeafQueue {
|
|
doReturn(-1).when(a).getNodeLocalityDelay();
|
|
doReturn(-1).when(a).getNodeLocalityDelay();
|
|
|
|
|
|
a.assignContainers(clusterResource, node_1,
|
|
a.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(10*GB, a.getUsedResources().getMemory());
|
|
assertEquals(10*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1435,7 +1435,7 @@ public class TestLeafQueue {
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
RMContainerEventType.KILL, null, true);
|
|
RMContainerEventType.KILL, null, true);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(8*GB, a.getUsedResources().getMemory());
|
|
assertEquals(8*GB, a.getUsedResources().getMemory());
|
|
assertEquals(0*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(8*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(8*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1504,7 +1504,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Only 1 container
|
|
// Only 1 container
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1512,14 +1512,14 @@ public class TestLeafQueue {
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// Also 2nd -> minCapacity = 1024 since (.1 * 8G) < minAlloc, also
|
|
// you can get one container more than user-limit
|
|
// you can get one container more than user-limit
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
|
|
|
|
// Now, reservation should kick in for app_1
|
|
// Now, reservation should kick in for app_1
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(6*GB, a.getUsedResources().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(2*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1534,7 +1534,7 @@ public class TestLeafQueue {
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
RMContainerEventType.KILL, null, true);
|
|
RMContainerEventType.KILL, null, true);
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1544,7 +1544,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Re-reserve
|
|
// Re-reserve
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(5*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1554,7 +1554,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Try to schedule on node_1 now, should *move* the reservation
|
|
// Try to schedule on node_1 now, should *move* the reservation
|
|
a.assignContainers(clusterResource, node_1,
|
|
a.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(9*GB, a.getUsedResources().getMemory());
|
|
assertEquals(9*GB, a.getUsedResources().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(1*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1572,7 +1572,7 @@ public class TestLeafQueue {
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
ContainerExitStatus.KILLED_BY_RESOURCEMANAGER),
|
|
RMContainerEventType.KILL, null, true);
|
|
RMContainerEventType.KILL, null, true);
|
|
CSAssignment assignment = a.assignContainers(clusterResource, node_0,
|
|
CSAssignment assignment = a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(8*GB, a.getUsedResources().getMemory());
|
|
assertEquals(8*GB, a.getUsedResources().getMemory());
|
|
assertEquals(0*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(0*GB, app_0.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
assertEquals(4*GB, app_1.getCurrentConsumption().getMemory());
|
|
@@ -1644,7 +1644,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Start with off switch, shouldn't allocate due to delay scheduling
|
|
// Start with off switch, shouldn't allocate due to delay scheduling
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority));
|
|
@@ -1653,7 +1653,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Another off switch, shouldn't allocate due to delay scheduling
|
|
// Another off switch, shouldn't allocate due to delay scheduling
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(2, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(2, app_0.getSchedulingOpportunities(priority));
|
|
@@ -1662,7 +1662,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Another off switch, shouldn't allocate due to delay scheduling
|
|
// Another off switch, shouldn't allocate due to delay scheduling
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(3, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(3, app_0.getSchedulingOpportunities(priority));
|
|
@@ -1672,7 +1672,7 @@ public class TestLeafQueue {
|
|
// Another off switch, now we should allocate
|
|
// Another off switch, now we should allocate
|
|
// since missedOpportunities=3 and reqdContainers=3
|
|
// since missedOpportunities=3 and reqdContainers=3
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
assignment = a.assignContainers(clusterResource, node_2,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.OFF_SWITCH), eq(node_2),
|
|
verify(app_0).allocate(eq(NodeType.OFF_SWITCH), eq(node_2),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(4, app_0.getSchedulingOpportunities(priority)); // should NOT reset
|
|
assertEquals(4, app_0.getSchedulingOpportunities(priority)); // should NOT reset
|
|
@@ -1681,7 +1681,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// NODE_LOCAL - node_0
|
|
// NODE_LOCAL - node_0
|
|
assignment = a.assignContainers(clusterResource, node_0,
|
|
assignment = a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_0),
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_0),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
@@ -1690,7 +1690,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// NODE_LOCAL - node_1
|
|
// NODE_LOCAL - node_1
|
|
assignment = a.assignContainers(clusterResource, node_1,
|
|
assignment = a.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_1),
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_1),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
@@ -1719,14 +1719,14 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Shouldn't assign RACK_LOCAL yet
|
|
// Shouldn't assign RACK_LOCAL yet
|
|
assignment = a.assignContainers(clusterResource, node_3,
|
|
assignment = a.assignContainers(clusterResource, node_3,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(2, app_0.getTotalRequiredResources(priority));
|
|
assertEquals(2, app_0.getTotalRequiredResources(priority));
|
|
assertEquals(NodeType.NODE_LOCAL, assignment.getType()); // None->NODE_LOCAL
|
|
assertEquals(NodeType.NODE_LOCAL, assignment.getType()); // None->NODE_LOCAL
|
|
|
|
|
|
// Should assign RACK_LOCAL now
|
|
// Should assign RACK_LOCAL now
|
|
assignment = a.assignContainers(clusterResource, node_3,
|
|
assignment = a.assignContainers(clusterResource, node_3,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.RACK_LOCAL), eq(node_3),
|
|
verify(app_0).allocate(eq(NodeType.RACK_LOCAL), eq(node_3),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
@@ -1808,7 +1808,7 @@ public class TestLeafQueue {
|
|
// Start with off switch, shouldn't allocate P1 due to delay scheduling
|
|
// Start with off switch, shouldn't allocate P1 due to delay scheduling
|
|
// thus, no P2 either!
|
|
// thus, no P2 either!
|
|
a.assignContainers(clusterResource, node_2,
|
|
a.assignContainers(clusterResource, node_2,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority_1));
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority_1));
|
|
@@ -1821,7 +1821,7 @@ public class TestLeafQueue {
|
|
// Another off-switch, shouldn't allocate P1 due to delay scheduling
|
|
// Another off-switch, shouldn't allocate P1 due to delay scheduling
|
|
// thus, no P2 either!
|
|
// thus, no P2 either!
|
|
a.assignContainers(clusterResource, node_2,
|
|
a.assignContainers(clusterResource, node_2,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_2),
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(2, app_0.getSchedulingOpportunities(priority_1));
|
|
assertEquals(2, app_0.getSchedulingOpportunities(priority_1));
|
|
@@ -1833,7 +1833,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Another off-switch, shouldn't allocate OFF_SWITCH P1
|
|
// Another off-switch, shouldn't allocate OFF_SWITCH P1
|
|
a.assignContainers(clusterResource, node_2,
|
|
a.assignContainers(clusterResource, node_2,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.OFF_SWITCH), eq(node_2),
|
|
verify(app_0).allocate(eq(NodeType.OFF_SWITCH), eq(node_2),
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(3, app_0.getSchedulingOpportunities(priority_1));
|
|
assertEquals(3, app_0.getSchedulingOpportunities(priority_1));
|
|
@@ -1845,7 +1845,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Now, DATA_LOCAL for P1
|
|
// Now, DATA_LOCAL for P1
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_0),
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_0),
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority_1));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority_1));
|
|
@@ -1857,7 +1857,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Now, OFF_SWITCH for P2
|
|
// Now, OFF_SWITCH for P2
|
|
a.assignContainers(clusterResource, node_1,
|
|
a.assignContainers(clusterResource, node_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1),
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
eq(priority_1), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority_1));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority_1));
|
|
@@ -1934,7 +1934,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// NODE_LOCAL - node_0_1
|
|
// NODE_LOCAL - node_0_1
|
|
a.assignContainers(clusterResource, node_0_0,
|
|
a.assignContainers(clusterResource, node_0_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_0_0),
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_0_0),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
@@ -1943,7 +1943,7 @@ public class TestLeafQueue {
|
|
// No allocation on node_1_0 even though it's node/rack local since
|
|
// No allocation on node_1_0 even though it's node/rack local since
|
|
// required(ANY) == 0
|
|
// required(ANY) == 0
|
|
a.assignContainers(clusterResource, node_1_0,
|
|
a.assignContainers(clusterResource, node_1_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_0),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_0),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // Still zero
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // Still zero
|
|
@@ -1960,7 +1960,7 @@ public class TestLeafQueue {
|
|
// No allocation on node_0_1 even though it's node/rack local since
|
|
// No allocation on node_0_1 even though it's node/rack local since
|
|
// required(rack_1) == 0
|
|
// required(rack_1) == 0
|
|
a.assignContainers(clusterResource, node_0_1,
|
|
a.assignContainers(clusterResource, node_0_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_0),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_0),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(1, app_0.getSchedulingOpportunities(priority));
|
|
@@ -1968,7 +1968,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// NODE_LOCAL - node_1
|
|
// NODE_LOCAL - node_1
|
|
a.assignContainers(clusterResource, node_1_0,
|
|
a.assignContainers(clusterResource, node_1_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_1_0),
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_1_0),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should reset
|
|
@@ -2221,7 +2221,7 @@ public class TestLeafQueue {
|
|
// node_0_1
|
|
// node_0_1
|
|
// Shouldn't allocate since RR(rack_0) = null && RR(ANY) = relax: false
|
|
// Shouldn't allocate since RR(rack_0) = null && RR(ANY) = relax: false
|
|
a.assignContainers(clusterResource, node_0_1,
|
|
a.assignContainers(clusterResource, node_0_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_0_1),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_0_1),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
@@ -2244,7 +2244,7 @@ public class TestLeafQueue {
|
|
// node_1_1
|
|
// node_1_1
|
|
// Shouldn't allocate since RR(rack_1) = relax: false
|
|
// Shouldn't allocate since RR(rack_1) = relax: false
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_0_1),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_0_1),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
@@ -2275,7 +2275,7 @@ public class TestLeafQueue {
|
|
// node_1_1
|
|
// node_1_1
|
|
// Shouldn't allocate since node_1_1 is blacklisted
|
|
// Shouldn't allocate since node_1_1 is blacklisted
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_1),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_1),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
@@ -2304,7 +2304,7 @@ public class TestLeafQueue {
|
|
// node_1_1
|
|
// node_1_1
|
|
// Shouldn't allocate since rack_1 is blacklisted
|
|
// Shouldn't allocate since rack_1 is blacklisted
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_1),
|
|
verify(app_0, never()).allocate(any(NodeType.class), eq(node_1_1),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority)); // should be 0
|
|
@@ -2331,7 +2331,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
// Now, should allocate since RR(rack_1) = relax: true
|
|
// Now, should allocate since RR(rack_1) = relax: true
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
a.assignContainers(clusterResource, node_1_1,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0,never()).allocate(eq(NodeType.RACK_LOCAL), eq(node_1_1),
|
|
verify(app_0,never()).allocate(eq(NodeType.RACK_LOCAL), eq(node_1_1),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority));
|
|
@@ -2362,7 +2362,7 @@ public class TestLeafQueue {
|
|
// host_1_1: 7G
|
|
// host_1_1: 7G
|
|
|
|
|
|
a.assignContainers(clusterResource, node_1_0,
|
|
a.assignContainers(clusterResource, node_1_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_1_0),
|
|
verify(app_0).allocate(eq(NodeType.NODE_LOCAL), eq(node_1_0),
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
any(Priority.class), any(ResourceRequest.class), any(Container.class));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority));
|
|
assertEquals(0, app_0.getSchedulingOpportunities(priority));
|
|
@@ -2445,7 +2445,7 @@ public class TestLeafQueue {
|
|
|
|
|
|
try {
|
|
try {
|
|
a.assignContainers(clusterResource, node_0,
|
|
a.assignContainers(clusterResource, node_0,
|
|
- new ResourceLimits(clusterResource));
|
|
|
|
|
|
+ new ResourceLimits(clusterResource), SchedulingMode.RESPECT_PARTITION_EXCLUSIVITY);
|
|
} catch (NullPointerException e) {
|
|
} catch (NullPointerException e) {
|
|
Assert.fail("NPE when allocating container on node but "
|
|
Assert.fail("NPE when allocating container on node but "
|
|
+ "forget to set off-switch request should be handled");
|
|
+ "forget to set off-switch request should be handled");
|