Repository: aurora Updated Branches: refs/heads/master 05e78014a -> 03eb33799
Fix 'PreemptorSlotSearchBenchmark', remove 'isProduction' references in benchmark This benchmark was using the deprecated `production` flag when building the tasks for the cluster. `PendingTaskProcessor` depends on `tier` instead, so this benchmark ended up not testing the correct codepath. Removed references to `production` and added `tier` instead. Additionally, removed some unused options. Reviewed at https://reviews.apache.org/r/66190/ Project: http://git-wip-us.apache.org/repos/asf/aurora/repo Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/03eb3379 Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/03eb3379 Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/03eb3379 Branch: refs/heads/master Commit: 03eb337998b5c394a3f6238922b4701b20fb392b Parents: 05e7801 Author: Jordan Ly <[email protected]> Authored: Fri Mar 23 13:30:41 2018 -0700 Committer: Jordan Ly <[email protected]> Committed: Fri Mar 23 13:30:54 2018 -0700 ---------------------------------------------------------------------- .../aurora/benchmark/BenchmarkSettings.java | 23 ++------------------ .../aurora/benchmark/SchedulingBenchmarks.java | 14 ++++++------ .../java/org/apache/aurora/benchmark/Tasks.java | 8 +++---- 3 files changed, 13 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/aurora/blob/03eb3379/src/jmh/java/org/apache/aurora/benchmark/BenchmarkSettings.java ---------------------------------------------------------------------- diff --git a/src/jmh/java/org/apache/aurora/benchmark/BenchmarkSettings.java b/src/jmh/java/org/apache/aurora/benchmark/BenchmarkSettings.java index ddab2ec..c15b756 100644 --- a/src/jmh/java/org/apache/aurora/benchmark/BenchmarkSettings.java +++ b/src/jmh/java/org/apache/aurora/benchmark/BenchmarkSettings.java @@ -27,26 +27,23 @@ final class BenchmarkSettings { private final Set<IHostAttributes> hostAttributes; private final double siblingClusterUtilization; private final double victimClusterUtilization; - private final boolean allVictimsEligibleForPreemption; private final Set<IScheduledTask> tasks; private BenchmarkSettings( double siblingClusterUtilization, double victimClusterUtilization, - boolean allVictimsEligibleForPreemption, Set<IHostAttributes> hostAttributes, Set<IScheduledTask> tasks) { this.siblingClusterUtilization = siblingClusterUtilization; this.victimClusterUtilization = victimClusterUtilization; - this.allVictimsEligibleForPreemption = allVictimsEligibleForPreemption; this.hostAttributes = requireNonNull(hostAttributes); this.tasks = requireNonNull(tasks); } /** * Gets the cluster utilization factor specifying what percentage of hosts in the cluster - * already have a job instance assigned to them as used during the scheduling benchmark. + * already have a job instance assigned to them. * * @return Cluster utilization (default: 0.25). */ @@ -56,7 +53,7 @@ final class BenchmarkSettings { /** * Gets the cluster utilization factor specifying what percentage of hosts in the cluster - * have a task of a foreign job assigned to them, i.e. potential preemption victims. + * already have a foreign (different role) preemptible job instance assigned to them. * * @return Cluster utilization (default: 0.25). */ @@ -65,15 +62,6 @@ final class BenchmarkSettings { } /** - * Flag indicating whether all existing assigned tasks are available for preemption. - * - * @return Victim preemption eligibility (default: false). - */ - boolean areAllVictimsEligibleForPreemption() { - return allVictimsEligibleForPreemption; - } - - /** * Gets a set of cluster host attributes. * * @return Set of {@link IHostAttributes}. @@ -94,7 +82,6 @@ final class BenchmarkSettings { static class Builder { private double siblingClusterUtilization = 0.25; private double victimClusterUtilization = 0.25; - private boolean allVictimsEligibleForPreemption; private Set<IHostAttributes> hostAttributes; private Set<IScheduledTask> tasks; @@ -108,11 +95,6 @@ final class BenchmarkSettings { return this; } - Builder setVictimPreemptionEligibilty(boolean newPreemptionEligibility) { - allVictimsEligibleForPreemption = newPreemptionEligibility; - return this; - } - Builder setHostAttributes(Set<IHostAttributes> newHostAttributes) { hostAttributes = newHostAttributes; return this; @@ -127,7 +109,6 @@ final class BenchmarkSettings { return new BenchmarkSettings( siblingClusterUtilization, victimClusterUtilization, - allVictimsEligibleForPreemption, hostAttributes, tasks); } http://git-wip-us.apache.org/repos/asf/aurora/blob/03eb3379/src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java ---------------------------------------------------------------------- diff --git a/src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java b/src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java index 1f9a576..80b45a9 100644 --- a/src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java +++ b/src/jmh/java/org/apache/aurora/benchmark/SchedulingBenchmarks.java @@ -220,10 +220,11 @@ public class SchedulingBenchmarks { int numVictimTasks = (int) Math.round(numOffers * settings.getVictimClusterUtilization()); return Sets.union( new Tasks.Builder() + .setTier(TaskTestUtil.PROD_TIER_NAME) .build(numSiblingTasks), new Tasks.Builder() .setRole("victim") - .setProduction(!settings.areAllVictimsEligibleForPreemption()) + .setTier(TaskTestUtil.DEV_TIER_NAME) .build(numVictimTasks)); } @@ -310,7 +311,7 @@ public class SchedulingBenchmarks { return new BenchmarkSettings.Builder() .setHostAttributes(new Hosts.Builder().setNumHostsPerRack(2).build(1000)) .setTasks(new Tasks.Builder() - .setProduction(true) + .setTier(TaskTestUtil.PROD_TIER_NAME) .setCpu(32) .build(1)).build(); } @@ -325,7 +326,7 @@ public class SchedulingBenchmarks { return new BenchmarkSettings.Builder() .setHostAttributes(new Hosts.Builder().setNumHostsPerRack(2).build(1000)) .setTasks(new Tasks.Builder() - .setProduction(true) + .setTier(TaskTestUtil.PROD_TIER_NAME) .addValueConstraint("host", "denied") .build(1)).build(); } @@ -340,7 +341,7 @@ public class SchedulingBenchmarks { return new BenchmarkSettings.Builder() .setHostAttributes(new Hosts.Builder().setNumHostsPerRack(2).build(1000)) .setTasks(new Tasks.Builder() - .setProduction(true) + .setTier(TaskTestUtil.PROD_TIER_NAME) .addLimitConstraint("host", 0) .build(1)).build(); } @@ -356,10 +357,9 @@ public class SchedulingBenchmarks { return new BenchmarkSettings.Builder() .setSiblingClusterUtilization(0.1) .setVictimClusterUtilization(0.9) - .setVictimPreemptionEligibilty(true) .setHostAttributes(new Hosts.Builder().setNumHostsPerRack(2).build(10000)) .setTasks(new Tasks.Builder() - .setProduction(true) + .setTier(TaskTestUtil.PROD_TIER_NAME) .addLimitConstraint("host", 0) .build(1)).build(); } @@ -387,7 +387,7 @@ public class SchedulingBenchmarks { .setVictimClusterUtilization(0.9) .setHostAttributes(new Hosts.Builder().setNumHostsPerRack(2).build(10000)) .setTasks(new Tasks.Builder() - .setProduction(true) + .setTier(TaskTestUtil.PROD_TIER_NAME) .addValueConstraint("host", "denied") .build(numPendingTasks)).build(); } http://git-wip-us.apache.org/repos/asf/aurora/blob/03eb3379/src/jmh/java/org/apache/aurora/benchmark/Tasks.java ---------------------------------------------------------------------- diff --git a/src/jmh/java/org/apache/aurora/benchmark/Tasks.java b/src/jmh/java/org/apache/aurora/benchmark/Tasks.java index 60c62bb..a5b6b45 100644 --- a/src/jmh/java/org/apache/aurora/benchmark/Tasks.java +++ b/src/jmh/java/org/apache/aurora/benchmark/Tasks.java @@ -51,7 +51,7 @@ final class Tasks { */ static final class Builder { private JobKey jobKey = new JobKey("jmh", "dev", "benchmark"); - private boolean isProduction = false; + private String tier = TaskTestUtil.DEV_TIER_NAME; private double cpu = 6.0; private Amount<Long, Data> ram = Amount.of(8L, Data.GB); private Amount<Long, Data> disk = Amount.of(128L, Data.GB); @@ -95,8 +95,8 @@ final class Tasks { return this; } - Builder setProduction(boolean newProduction) { - isProduction = newProduction; + Builder setTier(String newTier) { + tier = newTier; return this; } @@ -144,7 +144,7 @@ final class Tasks { builder.getAssignedTask().setAssignedPorts(ImmutableMap.of()); builder.getAssignedTask().getTask() .setConstraints(constraints.build()) - .setProduction(isProduction) + .setTier(tier) .setResources(ImmutableSet.of( numCpus(cpu), ramMb(ram.as(Data.MB)),
