You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@slider.apache.org by st...@apache.org on 2015/11/23 18:20:26 UTC
[14/50] incubator-slider git commit: SLIDER-967 First AA placement
tests all working
SLIDER-967 First AA placement tests all working
Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/47540882
Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/47540882
Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/47540882
Branch: refs/heads/develop
Commit: 47540882e15af473281eee477ea3253d5bef5e58
Parents: a7ba72e
Author: Steve Loughran <st...@apache.org>
Authored: Thu Nov 12 13:43:21 2015 +0000
Committer: Steve Loughran <st...@apache.org>
Committed: Thu Nov 12 13:43:21 2015 +0000
----------------------------------------------------------------------
.../slider/server/appmaster/state/AppState.java | 22 ++++++++++----------
.../server/appmaster/state/RoleHistory.java | 2 --
.../appstate/TestMockAppStateAAPlacement.groovy | 11 ++++++----
3 files changed, 18 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/47540882/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
index c960510..0c66e25 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/AppState.java
@@ -2187,17 +2187,6 @@ public class AppState {
// add all requests to the operations list
operations.addAll(allocation.operations);
- // now for AA requests, add some more
- if (role.isAntiAffinePlacement()) {
- role.completeOutstandingAARequest();
- if (role.getPendingAntiAffineRequests() > 0) {
- // still an outstanding AA request: need to issue a new one.
- log.info("Asking for next container for AA role {}", roleName);
- role.decPendingAntiAffineRequests();
- addContainerRequest(operations, createContainerRequest(role));
- }
- }
-
//look for condition where we get more back than we asked
if (allocated > desired) {
log.info("Discarding surplus {} container {} on {}", roleName, cid,
@@ -2228,6 +2217,17 @@ public class AppState {
if (request != null) {
operations.add(request);
}
+ // now for AA requests, add some more
+ if (role.isAntiAffinePlacement()) {
+ role.completeOutstandingAARequest();
+ if (role.getPendingAntiAffineRequests() > 0) {
+ // still an outstanding AA request: need to issue a new one.
+ log.info("Asking for next container for AA role {}", roleName);
+ role.decPendingAntiAffineRequests();
+ addContainerRequest(operations, createContainerRequest(role));
+ }
+ }
+
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/47540882/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
----------------------------------------------------------------------
diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
index 8a840fc..d7e6050 100644
--- a/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
+++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/state/RoleHistory.java
@@ -749,8 +749,6 @@ public class RoleHistory {
sortRecentNodeList(role);
}
}
- // TODO: AA placement: now request a new node
-
return outcome;
}
http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/47540882/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.groovy
----------------------------------------------------------------------
diff --git a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.groovy b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.groovy
index 64c0362..c98f3bf 100644
--- a/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.groovy
+++ b/slider-core/src/test/groovy/org/apache/slider/server/appmaster/model/appstate/TestMockAppStateAAPlacement.groovy
@@ -30,7 +30,7 @@ import org.apache.slider.server.appmaster.model.mock.MockRoles
import org.apache.slider.server.appmaster.operations.AbstractRMOperation
import org.apache.slider.server.appmaster.state.AppStateBindingInfo
import org.apache.slider.server.appmaster.state.ContainerAssignment
-import org.apache.slider.server.appmaster.state.NodeInstance
+import org.apache.slider.server.appmaster.state.NodeMap
import org.apache.slider.server.appmaster.state.RoleInstance
import org.apache.slider.server.appmaster.state.RoleStatus
import org.junit.Test
@@ -85,8 +85,7 @@ class TestMockAppStateAAPlacement extends BaseMockAppStateTest
@Test
public void testAllocateAANoLabel() throws Throwable {
- def nodemap = appState.roleHistory.cloneNodemap()
- assert nodemap.size() > 0
+ assert cloneNodemap().size() > 0
// want multiple instances, so there will be iterations
@@ -107,7 +106,7 @@ class TestMockAppStateAAPlacement extends BaseMockAppStateTest
appState.onContainersAllocated([allocated], assignments, operations)
def host = allocated.nodeId.host
- def hostInstance = nodemap.get(host)
+ def hostInstance = cloneNodemap().get(host)
assert hostInstance.get(aaRole.key).starting == 1
assert !hostInstance.canHost(aaRole.key, "")
assert !hostInstance.canHost(aaRole.key, null)
@@ -146,6 +145,10 @@ class TestMockAppStateAAPlacement extends BaseMockAppStateTest
assertAllContainersAA();
}
+ protected NodeMap cloneNodemap() {
+ appState.roleHistory.cloneNodemap()
+ }
+
@Test
public void testAllocateFlexUp() throws Throwable {
// want multiple instances, so there will be iterations