[haizea-commit] r557 - trunk/src/haizea/resourcemanager/scheduler
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Thu Jan 29 16:12:17 CST 2009
Author: borja
Date: 2009-01-29 16:12:16 -0600 (Thu, 29 Jan 2009)
New Revision: 557
Modified:
trunk/src/haizea/resourcemanager/scheduler/lease_scheduler.py
trunk/src/haizea/resourcemanager/scheduler/vm_scheduler.py
Log:
Miscellaneous code refactoring
Modified: trunk/src/haizea/resourcemanager/scheduler/lease_scheduler.py
===================================================================
--- trunk/src/haizea/resourcemanager/scheduler/lease_scheduler.py 2009-01-29 22:11:25 UTC (rev 556)
+++ trunk/src/haizea/resourcemanager/scheduler/lease_scheduler.py 2009-01-29 22:12:16 UTC (rev 557)
@@ -430,9 +430,7 @@
if susptype == constants.SUSPENSION_NONE:
must_cancel_and_requeue = True
else:
- time_until_suspend = preemption_time - vmrr.start
- min_duration = self.__compute_scheduling_threshold(lease)
- can_suspend = time_until_suspend >= min_duration
+ can_suspend = self.vm_scheduler.can_suspend_at(lease, preemption_time)
if not can_suspend:
self.logger.debug("Suspending the lease does not meet scheduling threshold.")
must_cancel_and_requeue = True
@@ -462,15 +460,8 @@
get_accounting().incr_counter(constants.COUNTER_QUEUESIZE, lease.id)
else:
self.logger.info("... lease #%i will be suspended at %s." % (lease.id, preemption_time))
- # Save original start and end time of the vmrr
- old_start = vmrr.start
- old_end = vmrr.end
- self.__schedule_suspension(vmrr, preemption_time)
- self.slottable.update_reservation_with_key_change(vmrr, old_start, old_end)
- for susprr in vmrr.post_rrs:
- self.slottable.addReservation(susprr)
+ self.vm_scheduler.preempt(vmrr, preemption_time)
-
self.logger.vdebug("Lease after preemption:")
lease.print_contents()
Modified: trunk/src/haizea/resourcemanager/scheduler/vm_scheduler.py
===================================================================
--- trunk/src/haizea/resourcemanager/scheduler/vm_scheduler.py 2009-01-29 22:11:25 UTC (rev 556)
+++ trunk/src/haizea/resourcemanager/scheduler/vm_scheduler.py 2009-01-29 22:12:16 UTC (rev 557)
@@ -457,6 +457,24 @@
for migr_rr in migr_rrs:
vmrr.pre_rrs.insert(0, migr_rr)
+ def preempt(self, vmrr, t):
+ # Save original start and end time of the vmrr
+ old_start = vmrr.start
+ old_end = vmrr.end
+ self.__schedule_suspension(vmrr, t)
+ self.slottable.update_reservation_with_key_change(vmrr, old_start, old_end)
+ for susprr in vmrr.post_rrs:
+ self.slottable.addReservation(susprr)
+
+
+
+ def can_suspend_at(self, lease, t):
+ # TODO: Make more general, should determine vmrr based on current time
+ vmrr = lease.get_last_vmrr()
+ time_until_suspend = t - vmrr.start
+ min_duration = self.__compute_scheduling_threshold(lease)
+ can_suspend = time_until_suspend >= min_duration
+ return can_suspend
def can_reserve_besteffort_in_future(self):
More information about the Haizea-commit
mailing list