[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