diff options
author | Martin Polden <mpolden@mpolden.no> | 2017-10-04 14:57:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-04 14:57:41 +0200 |
commit | 0224998e1597e8a80f95a6286269768f66fd728a (patch) | |
tree | 3dbd9ce792290f4713506f46b667b5e06078160f | |
parent | b6dcf01422624384acfaaf22ede93c4fe6a547dc (diff) |
Revert "Increase offered jobs in capacity constrained zones"
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()); } } |