[haizea-commit] r765 - branches/1.1/src/haizea/core/scheduler
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Fri Jan 15 00:23:15 CST 2010
Author: borja
Date: 2010-01-15 00:23:15 -0600 (Fri, 15 Jan 2010)
New Revision: 765
Modified:
branches/1.1/src/haizea/core/scheduler/lease_scheduler.py
branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
Log:
Fixes to several bugs that showed up when running Haizea with larger workloads.
Modified: branches/1.1/src/haizea/core/scheduler/lease_scheduler.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/lease_scheduler.py 2010-01-15 05:20:03 UTC (rev 764)
+++ branches/1.1/src/haizea/core/scheduler/lease_scheduler.py 2010-01-15 06:23:15 UTC (rev 765)
@@ -821,13 +821,13 @@
cancel = True
else:
if preempt_vmrr == None:
- self.logger.debug("Lease was set to start in the middle of the preempting lease.")
+ self.logger.debug("Lease %i was set to start in the middle of the preempting lease." % lease_to_preempt.id)
cancel = True
else:
can_suspend = self.vm_scheduler.can_suspend_at(lease_to_preempt, preemption_time)
if not can_suspend:
- self.logger.debug("Suspending the lease does not meet scheduling threshold.")
+ self.logger.debug("Suspending lease %i does not meet scheduling threshold." % lease_to_preempt.id)
cancel = True
after_vmrrs = lease_to_preempt.get_vmrr_after(preemption_time)
@@ -885,10 +885,12 @@
last_vmrr = lease_to_preempt.get_last_vmrr()
if last_vmrr != None and last_vmrr.is_suspending():
override_state = Lease.STATE_SUSPENDED_PENDING
+ earliest_time = last_vmrr.post_rrs[-1].end
else:
override_state = None
+ earliest_time = nexttime
for node in node_ids:
- earliest[node] = EarliestStartingTime(nexttime, EarliestStartingTime.EARLIEST_NOPREPARATION)
+ earliest[node] = EarliestStartingTime(earliest_time, EarliestStartingTime.EARLIEST_NOPREPARATION)
(new_vmrr, preemptions) = self.vm_scheduler.reschedule_deadline(lease_to_preempt, dur, nexttime, earliest, override_state)
else:
for node in node_ids:
@@ -913,7 +915,7 @@
# Post-VM RRs (if any)
for rr in new_vmrr.post_rrs:
self.slottable.add_reservation(rr)
- except:
+ except NotSchedulableException:
feasible = False
break
Modified: branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/vm_scheduler.py 2010-01-15 05:20:03 UTC (rev 764)
+++ branches/1.1/src/haizea/core/scheduler/vm_scheduler.py 2010-01-15 06:23:15 UTC (rev 765)
@@ -626,12 +626,13 @@
self.logger.debug("Trying to schedule lease #%i as an advance reservation..." % lease.id)
vmrr, preemptions = self.__schedule_exact(lease, duration, nexttime, earliest)
return vmrr, preemptions
- except:
+ except NotSchedulableException:
self.logger.debug("Lease #%i cannot be scheduled as an advance reservation, trying as best-effort..." % lease.id)
vmrr, preemptions = self.__schedule_asap(lease, duration, nexttime, earliest, allow_in_future = True, override_state=override_state)
if vmrr.end - vmrr.start != duration or vmrr.end > lease.deadline or len(preemptions)>0:
+ vmrr = None
self.logger.debug("Lease #%i cannot be scheduled before deadline using best-effort." % lease.id)
- raise NotSchedulableException, "Could not schedule before deadline without making other leases miss deadline"
+ #raise NotSchedulableException, "Could not schedule before deadline without making other leases miss deadline"
else:
return vmrr, preemptions
else:
More information about the Haizea-commit
mailing list