summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2017-10-04 14:57:41 +0200
committerGitHub <noreply@github.com>2017-10-04 14:57:41 +0200
commit0224998e1597e8a80f95a6286269768f66fd728a (patch)
tree3dbd9ce792290f4713506f46b667b5e06078160f
parentb6dcf01422624384acfaaf22ede93c4fe6a547dc (diff)
Revert "Increase offered jobs in capacity constrained zones"
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystem.java14
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java28
2 files changed, 15 insertions, 27 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystem.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystem.java
index bb3c4314e0d..0d9330ed8ea 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystem.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystem.java
@@ -26,12 +26,10 @@ public class PolledBuildSystem implements BuildSystem {
private static final Logger log = Logger.getLogger(PolledBuildSystem.class.getName());
- // The number of jobs to offer, on each poll, for zones that have limited capacity
- private static final int maxCapacityConstraintedJobsToOffer = 2;
-
private final Controller controller;
- private final CuratorDb curator;
+ private final CuratorDb curator;
+
public PolledBuildSystem(Controller controller, CuratorDb curator) {
this.controller = controller;
this.curator = curator;
@@ -77,7 +75,6 @@ public class PolledBuildSystem implements BuildSystem {
}
private List<BuildJob> getJobs(boolean removeFromQueue) {
- int capacityConstrainedJobsOffered = 0;
try (Lock lock = curator.lockJobQueues()) {
List<BuildJob> jobsToRun = new ArrayList<>();
for (JobType jobType : JobType.values()) {
@@ -93,11 +90,8 @@ public class PolledBuildSystem implements BuildSystem {
" because project ID is missing");
}
- // Return a limited number of jobs at a time for capacity constrained zones
- if (removeFromQueue && isCapacityConstrained(jobType) &&
- ++capacityConstrainedJobsOffered >= maxCapacityConstraintedJobsToOffer) {
- break;
- }
+ // Return only one job at a time for capacity constrained queues
+ if (removeFromQueue && isCapacityConstrained(jobType)) break;
}
if (removeFromQueue)
curator.writeJobQueue(jobType, queue);
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java
index e66d7e9168d..c869bd90924 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/PolledBuildSystemTest.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertEquals;
public class PolledBuildSystemTest {
@Parameterized.Parameters(name = "jobType={0}")
- public static Iterable<?> capacityConstrainedJobs() {
+ public static Iterable<? extends Object> capacityConstrainedJobs() {
return Arrays.asList(JobType.systemTest, JobType.stagingTest);
}
@@ -37,32 +37,26 @@ public class PolledBuildSystemTest {
DeploymentTester tester = new DeploymentTester();
BuildSystem buildSystem = new PolledBuildSystem(tester.controller(), new MockCuratorDb());
- int project1 = 1;
- int project2 = 2;
- int project3 = 3;
+ int fooProjectId = 1;
+ int barProjectId = 2;
ApplicationPackage applicationPackage = new ApplicationPackageBuilder()
.region("us-west-1")
.build();
- ApplicationId app1 = tester.createAndDeploy("app1", project1, applicationPackage).id();
- ApplicationId app2 = tester.createAndDeploy("app2", project2, applicationPackage).id();
- ApplicationId app3 = tester.createAndDeploy("app3", project3, applicationPackage).id();
+ ApplicationId foo = tester.createAndDeploy("app1", fooProjectId, applicationPackage).id();
+ ApplicationId bar = tester.createAndDeploy("app2", barProjectId, applicationPackage).id();
// Trigger jobs in capacity constrained environment
- buildSystem.addJob(app1, jobType, false);
- buildSystem.addJob(app2, jobType, false);
- buildSystem.addJob(app3, jobType, false);
+ buildSystem.addJob(foo, jobType, false);
+ buildSystem.addJob(bar, jobType, false);
- // A limited number of jobs are offered at a time:
- // First offer
+ // Capacity constrained jobs are returned one a at a time
List<BuildJob> nextJobs = buildSystem.takeJobsToRun();
- assertEquals(2, nextJobs.size());
- assertEquals(project1, nextJobs.get(0).projectId());
- assertEquals(project2, nextJobs.get(1).projectId());
+ assertEquals(1, nextJobs.size());
+ assertEquals(fooProjectId, nextJobs.get(0).projectId());
- // Second offer
nextJobs = buildSystem.takeJobsToRun();
assertEquals(1, nextJobs.size());
- assertEquals(project3, nextJobs.get(0).projectId());
+ assertEquals(barProjectId, nextJobs.get(0).projectId());
}
}