diff --git a/azkaban-common/src/test/java/azkaban/executor/DispatcherTest.java b/azkaban-common/src/test/java/azkaban/executor/DispatcherTest.java
index d5d5f47..a5a5cf8 100644
--- a/azkaban-common/src/test/java/azkaban/executor/DispatcherTest.java
+++ b/azkaban-common/src/test/java/azkaban/executor/DispatcherTest.java
@@ -178,6 +178,13 @@ public class DispatcherTest {
return "MockComparator";
}
+ @Override
+ protected boolean differentiate(MockExecutorObject object1, MockExecutorObject object2){
+ if (object2 == null) return true;
+ if (object1 == null) return false;
+ return object1.name.compareTo(object2.name) >= 0;
+ }
+
public MockComparator(){
}
@@ -242,8 +249,23 @@ public class DispatcherTest {
executorList.add(new MockExecutorObject("Executor8",8080,50.0,2048,1,new Date(), 90, 3200));
executorList.add(new MockExecutorObject("Executor9",8080,50.0,2050,5,new Date(), 90, 4200));
executorList.add(new MockExecutorObject("Executor10",8080,00.0,1024,1,new Date(), 90, 3200));
- executorList.add(new MockExecutorObject("Executor11",8080,40.0,3096,3,new Date(), 90, 2400));
- executorList.add(new MockExecutorObject("Executor12",8080,50.0,2050,5,new Date(), 60, 7200));
+ executorList.add(new MockExecutorObject("Executor11",8080,20.0,2096,3,new Date(), 90, 2400));
+ executorList.add(new MockExecutorObject("Executor12",8080,90.0,2050,5,new Date(), 60, 2500));
+
+
+ // make sure each time the order is different.
+ Collections.shuffle(this.executorList);
+ }
+
+ private MockExecutorObject getExecutorByName(String name){
+ MockExecutorObject returnVal = null;
+ for (MockExecutorObject item : this.executorList){
+ if (item.name.equals(name)){
+ returnVal = item;
+ break;
+ }
+ }
+ return returnVal;
}
@After
@@ -260,7 +282,7 @@ public class DispatcherTest {
mFilter.registerFilterforRemainingMemory();
// expect true.
- boolean result = mFilter.check(this.executorList.get(0), dispatchingObj);
+ boolean result = mFilter.check(this.getExecutorByName("Executor1"), dispatchingObj);
/*
1 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor1' with factor filter for 'Mockfilter'
1 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
@@ -269,7 +291,7 @@ public class DispatcherTest {
Assert.assertTrue(result);
//expect true.
- result = mFilter.check(this.executorList.get(2), dispatchingObj);
+ result = mFilter.check(this.getExecutorByName("Executor3"), dispatchingObj);
/*
1 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor3' with factor filter for 'Mockfilter'
2 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
@@ -279,7 +301,7 @@ public class DispatcherTest {
// add the priority filter.
mFilter.registerFilterforPriority();
- result = mFilter.check(this.executorList.get(2), dispatchingObj);
+ result = mFilter.check(this.getExecutorByName("Executor3"), dispatchingObj);
// expect false, for priority.
/*
2 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor3' with factor filter for 'Mockfilter'
@@ -293,7 +315,7 @@ public class DispatcherTest {
mFilter.registerFilterforRemainingTmpSpace();
// expect pass.
- result = mFilter.check(this.executorList.get(1), dispatchingObj);
+ result = mFilter.check(this.getExecutorByName("Executor2"), dispatchingObj);
/*
3 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor2' with factor filter for 'Mockfilter'
3 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
@@ -304,7 +326,7 @@ public class DispatcherTest {
Assert.assertTrue(result);
// expect false, remaining tmp, priority will also fail but the logic shortcuts when the Tmp size check Fails.
- result = mFilter.check(this.executorList.get(7), dispatchingObj);
+ result = mFilter.check(this.getExecutorByName("Executor8"), dispatchingObj);
/*
4 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor8' with factor filter for 'Mockfilter'
4 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
@@ -323,59 +345,94 @@ public class DispatcherTest {
MockExecutorObject nextExecutor = Collections.max(this.executorList, comparator);
// expect the first item to be selected, memory wise it is the max.
- Assert.assertEquals(this.executorList.get(10),nextExecutor);
+ Assert.assertEquals(this.getExecutorByName("Executor11"),nextExecutor);
// add the priority factor.
// expect again the #9 item to be selected.
comparator.registerComparerForPriority(6);
nextExecutor = Collections.max(this.executorList, comparator);
/*
- 10 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor2' with 'Executor1', total weight = 11
- 10 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
- 11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 6)
- 11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 6
- 11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor3' with 'Executor1', total weight = 11
+ 2 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor8' with 'Executor2', total weight = 5
+ 2 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
+ 2 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Differentiator] differentiator chose Executor8
+ 3 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 1 vs 0
+ 3 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor3' with 'Executor8', total weight = 5
+ 4 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 4 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 4 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor9' with 'Executor8', total weight = 5
+ 5 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 1 (current score 5 vs 0)
+ 5 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 5 vs 0
+ 5 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor11' with 'Executor9', total weight = 5
+ 6 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 1 (current score 5 vs 0)
+ 6 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 5 vs 0
+ 6 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor12' with 'Executor11', total weight = 5
+ 6 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 7 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 7 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor10' with 'Executor11', total weight = 5
+ 7 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 8 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 8 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor1' with 'Executor11', total weight = 5
+ 8 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 9 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 9 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor7' with 'Executor11', total weight = 5
+ 9 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 9 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 10 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor6' with 'Executor11', total weight = 5
+ 10 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 10 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor5' with 'Executor11', total weight = 5
11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
- 11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 11)
- 11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 11
- 12 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor4' with 'Executor1', total weight = 11
- 12 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
- 12 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 6)
- 12 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 6
- 13 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor5' with 'Executor1', total weight = 11
- 13 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
- 13 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 5)
- 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
- 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor6' with 'Executor1', total weight = 11
- 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
- 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 5)
- 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
- 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor7' with 'Executor1', total weight = 11
+ 11 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 12 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor4' with 'Executor11', total weight = 5
+ 12 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 12 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Factor comparator added for 'Priority'. Weight = '6'
+ 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor8' with 'Executor2', total weight = 11
+ 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
+ 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 6)
+ 14 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 6
+ 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor3' with 'Executor2', total weight = 11
15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
- 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 5)
- 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
- 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor8' with 'Executor1', total weight = 11
- 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
- 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 6)
- 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 6
- 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor9' with 'Executor1', total weight = 11
+ 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 11)
+ 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 11
+ 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor9' with 'Executor2', total weight = 11
+ 15 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 1 (current score 5 vs 0)
+ 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 1 (current score 11 vs 0)
+ 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 11 vs 0
+ 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor11' with 'Executor9', total weight = 11
16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 1 (current score 5 vs 0)
- 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 5 vs 0)
- 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 5 vs 0
- 17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor10' with 'Executor9', total weight = 11
+ 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 5 vs 6)
+ 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 5 vs 6
+ 16 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor12' with 'Executor9', total weight = 11
+ 17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 1 (current score 5 vs 0)
+ 17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 5 vs 0)
+ 17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 5 vs 0
+ 17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor10' with 'Executor12', total weight = 11
17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 11)
- 17 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 11
- 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor11' with 'Executor9', total weight = 11
- 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 1 (current score 5 vs 0)
- 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 5 vs 6)
- 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 5 vs 6
- 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor12' with 'Executor9', total weight = 11
- 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
- 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 0)
- 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 0
+ 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 11
+ 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor1' with 'Executor12', total weight = 11
+ 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 5)
+ 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 18 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor7' with 'Executor12', total weight = 11
+ 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 5)
+ 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor6' with 'Executor12', total weight = 11
+ 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 5)
+ 19 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor5' with 'Executor12', total weight = 11
+ 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 0 vs 5)
+ 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor4' with 'Executor12', total weight = 11
+ 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : -1 (current score 0 vs 5)
+ 21 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 11)
+ 21 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 11
* */
- Assert.assertEquals(this.executorList.get(8),nextExecutor);
+ Assert.assertEquals(this.getExecutorByName("Executor12"),nextExecutor);
// add the remaining space factor.
// expect the #12 item to be returned.
@@ -438,7 +495,7 @@ public class DispatcherTest {
34 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: RemainingTmp] compare result : 1 (current score 3 vs 0)
34 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 3 vs 0
* */
- Assert.assertEquals(this.executorList.get(11),nextExecutor);
+ Assert.assertEquals(this.getExecutorByName("Executor12"),nextExecutor);
}
@Test
@@ -464,84 +521,77 @@ public class DispatcherTest {
// expected selection = #12
MockExecutorObject nextExecutor = morkDispatcher.getNext(this.executorList, dispatchingObj);
/*
- * 9 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start candidate selection logic.
- 9 [main] INFO azkaban.executor.dispatcher.CandidateComparator - candidate count before filtering: 12
- 10 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor1' with factor filter for 'Mockfilter'
- 10 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 10 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 10 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
- 11 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : true
- 11 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : true
- 11 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor2' with factor filter for 'Mockfilter'
- 11 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 11 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 12 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
- 12 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : true
- 12 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : true
- 12 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor3' with factor filter for 'Mockfilter'
- 12 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 13 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 13 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
- 13 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : false
- 13 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 13 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor4' with factor filter for 'Mockfilter'
- 13 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 14 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 14 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
- 14 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : true
- 14 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : true
- 14 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor5' with factor filter for 'Mockfilter'
- 15 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
- 15 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 15 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor6' with factor filter for 'Mockfilter'
- 15 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
- 15 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 15 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor7' with factor filter for 'Mockfilter'
- 16 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
- 16 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 16 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor8' with factor filter for 'Mockfilter'
- 16 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 16 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 17 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : false
- 17 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 17 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor9' with factor filter for 'Mockfilter'
- 17 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 17 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 17 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : false
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor10' with factor filter for 'Mockfilter'
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor11' with factor filter for 'Mockfilter'
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 18 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : false
- 19 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
- 19 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor12' with factor filter for 'Mockfilter'
- 19 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
- 19 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
- 19 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
- 19 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : true
- 19 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : true
- 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - candidate count after filtering: 4
- 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor2' with 'Executor1', total weight = 11
- 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
- 20 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 5)
- 21 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: RemainingTmp] compare result : 0 (current score 0 vs 5)
- 21 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
- 21 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor4' with 'Executor1', total weight = 11
- 22 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
- 22 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 5)
- 22 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: RemainingTmp] compare result : 0 (current score 0 vs 5)
- 22 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
- 22 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor12' with 'Executor1', total weight = 11
- 23 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 1 (current score 3 vs 0)
- 23 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 0 (current score 3 vs 0)
- 23 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: RemainingTmp] compare result : 1 (current score 6 vs 0)
- 23 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 6 vs 0
- 23 [main] INFO azkaban.executor.dispatcher.CandidateComparator - candidate selected Executor12
+ * 4743 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start candidate selection logic.
+ 4744 [main] INFO azkaban.executor.dispatcher.CandidateComparator - candidate count before filtering: 12
+ 4745 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor2' with factor filter for 'Mockfilter'
+ 4746 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4747 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
+ 4747 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
+ 4748 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : true
+ 4749 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : true
+ 4749 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor12' with factor filter for 'Mockfilter'
+ 4750 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4751 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : false
+ 4751 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4752 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor11' with factor filter for 'Mockfilter'
+ 4752 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4753 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
+ 4753 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : false
+ 4753 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4754 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor7' with factor filter for 'Mockfilter'
+ 4754 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
+ 4754 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4755 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor5' with factor filter for 'Mockfilter'
+ 4755 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
+ 4755 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4756 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor9' with factor filter for 'Mockfilter'
+ 4756 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4756 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
+ 4757 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : false
+ 4757 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4757 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor8' with factor filter for 'Mockfilter'
+ 4757 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4758 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
+ 4758 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : false
+ 4758 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4759 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor1' with factor filter for 'Mockfilter'
+ 4759 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4759 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
+ 4760 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
+ 4760 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : true
+ 4760 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : true
+ 4761 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor4' with factor filter for 'Mockfilter'
+ 4761 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4761 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
+ 4762 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
+ 4762 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : true
+ 4762 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : true
+ 4763 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor6' with factor filter for 'Mockfilter'
+ 4763 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
+ 4763 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4764 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor3' with factor filter for 'Mockfilter'
+ 4764 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : true
+ 4764 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredTotalMemory] filter result : true
+ 4765 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingTmpSpace] filter result : true
+ 4765 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredProprity] filter result : false
+ 4765 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4765 [main] INFO azkaban.executor.dispatcher.CandidateFilter - start checking 'Executor10' with factor filter for 'Mockfilter'
+ 4766 [main] INFO azkaban.executor.dispatcher.CandidateFilter - [Factor: requiredRemainingMemory] filter result : false
+ 4766 [main] INFO azkaban.executor.dispatcher.CandidateFilter - Final checking result : false
+ 4766 [main] INFO azkaban.executor.dispatcher.CandidateComparator - candidate count after filtering: 3
+ 4767 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor1' with 'Executor2', total weight = 11
+ 4767 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
+ 4768 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : 1 (current score 5 vs 0)
+ 4768 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: RemainingTmp] compare result : 0 (current score 5 vs 0)
+ 4769 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 5 vs 0
+ 4770 [main] INFO azkaban.executor.dispatcher.CandidateComparator - start comparing 'Executor4' with 'Executor1', total weight = 11
+ 4771 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Memory] compare result : 0 (current score 0 vs 0)
+ 4771 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: Priority] compare result : -1 (current score 0 vs 5)
+ 4772 [main] INFO azkaban.executor.dispatcher.CandidateComparator - [Factor: RemainingTmp] compare result : 0 (current score 0 vs 5)
+ 4772 [main] INFO azkaban.executor.dispatcher.CandidateComparator - Result : 0 vs 5
+ 4772 [main] INFO azkaban.executor.dispatcher.CandidateComparator - candidate selected Executor1
*/
- Assert.assertEquals( this.executorList.get(11),nextExecutor);
+ Assert.assertEquals(this.getExecutorByName("Executor1"),nextExecutor);
// remaining memory 11500, total memory 3095, remainingTmpSpace 14200, priority 2.
dispatchingObj = new MockFlowObject("flow1",3096, 1500,14200,2);
@@ -569,17 +619,17 @@ public class DispatcherTest {
MockFlowObject dispatchingObj = new MockFlowObject("flow1",100, 100,100,3);
MockExecutorObject executor = morkDispatcher.getNext(this.executorList, dispatchingObj);
- Assert.assertEquals(this.executorList.get(11), executor);
+ Assert.assertEquals(this.getExecutorByName("Executor9"), executor);
// adjusted the weight for memory to 10, therefore item #11 should be returned.
morkDispatcher.getComparator().adjustFactorWeight("Memory", 10);
executor = morkDispatcher.getNext(this.executorList, dispatchingObj);
- Assert.assertEquals(this.executorList.get(10), executor);
-
+ Assert.assertEquals(this.getExecutorByName("Executor11"), executor);
+
// adjusted the weight for memory back to 1, therefore item #12 should be returned.
morkDispatcher.getComparator().adjustFactorWeight("Memory", 1);
executor = morkDispatcher.getNext(this.executorList, dispatchingObj);
- Assert.assertEquals(this.executorList.get(11), executor);
+ Assert.assertEquals(this.getExecutorByName("Executor9"), executor);
}
}