You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@falcon.apache.org by pa...@apache.org on 2016/01/04 10:10:27 UTC

falcon git commit: FALCON-1709 FIFO order is not followed when scheduled using native scheduler (Pallavi Rao)

Repository: falcon
Updated Branches:
  refs/heads/master c81db674d -> 20bacfa13


FALCON-1709 FIFO order is not followed when scheduled using native scheduler (Pallavi Rao)


Project: http://git-wip-us.apache.org/repos/asf/falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/falcon/commit/20bacfa1
Tree: http://git-wip-us.apache.org/repos/asf/falcon/tree/20bacfa1
Diff: http://git-wip-us.apache.org/repos/asf/falcon/diff/20bacfa1

Branch: refs/heads/master
Commit: 20bacfa134c7eb89b030dff22a5ba8aff0b4636b
Parents: c81db67
Author: Pallavi Rao <pa...@inmobi.com>
Authored: Mon Jan 4 14:40:08 2016 +0530
Committer: Pallavi Rao <pa...@inmobi.com>
Committed: Mon Jan 4 14:40:08 2016 +0530

----------------------------------------------------------------------
 CHANGES.txt                                               |  2 ++
 .../notification/service/impl/SchedulerService.java       | 10 ++++++++++
 2 files changed, 12 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/falcon/blob/20bacfa1/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 018a6db..4adbdef 100755
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -90,6 +90,8 @@ Trunk (Unreleased)
   OPTIMIZATIONS
 
   BUG FIXES
+    FALCON-1709 FIFO order is not followed when scheduled using native scheduler (Pallavi Rao)
+
     FALCON-1711 DependencyInstance twiki does not contain correct documentation	(Praveen Adlakha via Pallavi Rao)
 
     FALCON-1702 Exception thrown by workflow status listeners on success notification(Pallavi Rao via Ajay Yadava)

http://git-wip-us.apache.org/repos/asf/falcon/blob/20bacfa1/scheduler/src/main/java/org/apache/falcon/notification/service/impl/SchedulerService.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/falcon/notification/service/impl/SchedulerService.java b/scheduler/src/main/java/org/apache/falcon/notification/service/impl/SchedulerService.java
index 57a41c8..f5a7c86 100644
--- a/scheduler/src/main/java/org/apache/falcon/notification/service/impl/SchedulerService.java
+++ b/scheduler/src/main/java/org/apache/falcon/notification/service/impl/SchedulerService.java
@@ -101,6 +101,8 @@ public class SchedulerService implements FalconNotificationService, Notification
         if (obj != null) {
             instancesToIgnore.invalidate(request.getInstance().getId());
         }
+        LOG.debug("Received request to schedule instance {} with sequence {}.", request.getInstance().getId(),
+                request.getInstance().getInstanceSequence());
         runQueue.execute(new InstanceRunner(request));
     }
 
@@ -281,6 +283,10 @@ public class SchedulerService implements FalconNotificationService, Notification
             }
         }
 
+        public ExecutionInstance getInstance() {
+            return instance;
+        }
+
         @Override
         public void run() {
             try {
@@ -387,6 +393,10 @@ public class SchedulerService implements FalconNotificationService, Notification
     private static class PriorityComparator<T extends InstanceRunner> implements Comparator<T>, Serializable {
         @Override
         public int compare(T o1, T o2) {
+            // If both instances have same priority, go by instance sequence.
+            if (o1.getPriority() == o2.getPriority()) {
+                return o1.getInstance().getInstanceSequence() - o2.getInstance().getInstanceSequence();
+            }
             return o1.getPriority() - o2.getPriority();
         }
     }