[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