/** * Update the min/fair share preemption timeouts and threshold for this queue. */ public void updatePreemptionVariables() { // For min share timeout minSharePreemptionTimeout = scheduler.getAllocationConfiguration() .getMinSharePreemptionTimeout(getName()); if (minSharePreemptionTimeout == -1 && parent != null) { minSharePreemptionTimeout = parent.getMinSharePreemptionTimeout(); } // For fair share timeout fairSharePreemptionTimeout = scheduler.getAllocationConfiguration() .getFairSharePreemptionTimeout(getName()); if (fairSharePreemptionTimeout == -1 && parent != null) { fairSharePreemptionTimeout = parent.getFairSharePreemptionTimeout(); } // For fair share preemption threshold fairSharePreemptionThreshold = scheduler.getAllocationConfiguration() .getFairSharePreemptionThreshold(getName()); if (fairSharePreemptionThreshold < 0 && parent != null) { fairSharePreemptionThreshold = parent.getFairSharePreemptionThreshold(); } }
/** * Update the min/fair share preemption timeouts and threshold for this queue. */ public void updatePreemptionVariables() { // For min share timeout minSharePreemptionTimeout = scheduler.getAllocationConfiguration() .getMinSharePreemptionTimeout(getName()); if (minSharePreemptionTimeout == -1 && parent != null) { minSharePreemptionTimeout = parent.getMinSharePreemptionTimeout(); } // For fair share timeout fairSharePreemptionTimeout = scheduler.getAllocationConfiguration() .getFairSharePreemptionTimeout(getName()); if (fairSharePreemptionTimeout == -1 && parent != null) { fairSharePreemptionTimeout = parent.getFairSharePreemptionTimeout(); } // For fair share preemption threshold fairSharePreemptionThreshold = scheduler.getAllocationConfiguration() .getFairSharePreemptionThreshold(getName()); if (fairSharePreemptionThreshold < 0 && parent != null) { fairSharePreemptionThreshold = parent.getFairSharePreemptionThreshold(); } }
assertEquals(-1, queueConf.getFairSharePreemptionTimeout("root.queueE")); assertEquals(.6f, queueConf.getFairSharePreemptionThreshold("root"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root." + YarnConfiguration.DEFAULT_QUEUE_NAME), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueA"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueB"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueC"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueD"), 0.01); assertEquals(.3f, queueConf.getFairSharePreemptionThreshold("root.queueE"), 0.01);
assertEquals(-1, queueConf.getFairSharePreemptionTimeout("root.queueE")); assertEquals(.6f, queueConf.getFairSharePreemptionThreshold("root"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root." + YarnConfiguration.DEFAULT_QUEUE_NAME), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueA"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueB"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueC"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueD"), 0.01); assertEquals(.3f, queueConf.getFairSharePreemptionThreshold("root.queueE"), 0.01);
.getFairSharePreemptionThreshold(getName()); if (fairSharePreemptionThreshold < 0 && parent != null) { fairSharePreemptionThreshold = parent.getFairSharePreemptionThreshold();
assertEquals(180000, queueConf.getFairSharePreemptionTimeout("root.queueG.queueH")); assertEquals(.4f, queueConf.getFairSharePreemptionThreshold("root"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root." + YarnConfiguration.DEFAULT_QUEUE_NAME), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueA"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueB"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueC"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueD"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueE"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueF"), 0.01); assertEquals(.6f, queueConf.getFairSharePreemptionThreshold("root.queueG"), 0.01); assertEquals(.7f, queueConf.getFairSharePreemptionThreshold("root.queueG.queueH"), 0.01);
assertEquals(180000, queueConf.getFairSharePreemptionTimeout("root.queueG.queueH")); assertEquals(.4f, queueConf.getFairSharePreemptionThreshold("root"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root." + YarnConfiguration.DEFAULT_QUEUE_NAME), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueA"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueB"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueC"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueD"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueE"), 0.01); assertEquals(-1, queueConf.getFairSharePreemptionThreshold("root.queueF"), 0.01); assertEquals(.6f, queueConf.getFairSharePreemptionThreshold("root.queueG"), 0.01); assertEquals(.7f, queueConf.getFairSharePreemptionThreshold("root.queueG.queueH"), 0.01);