[haizea-commit] r821 - branches/1.1/src/haizea/core/scheduler

haizea-commit at mailman.cs.uchicago.edu haizea-commit at mailman.cs.uchicago.edu
Thu Jul 8 16:54:17 CDT 2010


Author: borja
Date: 2010-07-08 16:54:17 -0500 (Thu, 08 Jul 2010)
New Revision: 821

Modified:
   branches/1.1/src/haizea/core/scheduler/lease_scheduler.py
Log:
Since preparation scheduling can result in an infeasible lease, preemptions should be done *after* the preparation has been scheduled.

Modified: branches/1.1/src/haizea/core/scheduler/lease_scheduler.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/lease_scheduler.py	2010-07-08 21:53:26 UTC (rev 820)
+++ branches/1.1/src/haizea/core/scheduler/lease_scheduler.py	2010-07-08 21:54:17 UTC (rev 821)
@@ -690,13 +690,6 @@
         lease.price = lease_price
         ## END NOT-FIT-FOR-PRODUCTION CODE
                                 
-        # If scheduling the lease involves preempting other leases,
-        # go ahead and preempt them.
-        if len(preemptions) > 0:
-            self.logger.info("Must preempt leases %s to make room for lease #%i" % ([l.id for l in preemptions], lease.id))
-            for l in preemptions:
-                self.__preempt_lease(l, preemption_time=vmrr.start)
-                
         # Schedule lease preparation
         is_ready = False
         preparation_rrs = []
@@ -718,8 +711,15 @@
             is_ready = True
         elif lease_state in (Lease.STATE_PENDING, Lease.STATE_QUEUED):
             # The lease might require initial preparation
-            preparation_rrs, is_ready = self.preparation_scheduler.schedule(lease, vmrr, earliest)
+            preparation_rrs, is_ready = self.preparation_scheduler.schedule(lease, vmrr, earliest, nexttime)
 
+        # If scheduling the lease involves preempting other leases,
+        # go ahead and preempt them.
+        if len(preemptions) > 0:
+            self.logger.info("Must preempt leases %s to make room for lease #%i" % ([l.id for l in preemptions], lease.id))
+            for l in preemptions:
+                self.__preempt_lease(l, preemption_time=vmrr.start)
+
         # At this point, the lease is feasible.
         # Commit changes by adding RRs to lease and to slot table
         



More information about the Haizea-commit mailing list