[haizea-commit] r808 - in branches/1.1/src/haizea/core: enact scheduler scheduler/preparation_schedulers

haizea-commit at mailman.cs.uchicago.edu haizea-commit at mailman.cs.uchicago.edu
Tue Jun 22 14:37:28 CDT 2010


Author: borja
Date: 2010-06-22 14:37:28 -0500 (Tue, 22 Jun 2010)
New Revision: 808

Modified:
   branches/1.1/src/haizea/core/enact/simulated.py
   branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py
   branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
Log:
- In some cases an error was carried over in the estimated migration times that would result in the sanity check failing.
- Migration bandwidth was hardcoded; now taken from configuration file.

Modified: branches/1.1/src/haizea/core/enact/simulated.py
===================================================================
--- branches/1.1/src/haizea/core/enact/simulated.py	2010-06-22 18:34:55 UTC (rev 807)
+++ branches/1.1/src/haizea/core/enact/simulated.py	2010-06-22 19:37:28 UTC (rev 808)
@@ -19,6 +19,7 @@
 from haizea.core.leases import Capacity
 from haizea.core.scheduler.resourcepool import ResourcePoolNode
 from haizea.core.enact import ResourcePoolInfo, VMEnactment, DeploymentEnactment
+from haizea.common.utils import get_config
 import haizea.common.constants as constants
 import logging
 
@@ -61,7 +62,7 @@
         return self.resource_types
 
     def get_migration_bandwidth(self):
-        return 100 # TODO: Get from config file
+        return get_config().get("imagetransfer-bandwidth")
 
 class SimulatedVMEnactment(VMEnactment):
     def __init__(self):

Modified: branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py	2010-06-22 18:34:55 UTC (rev 807)
+++ branches/1.1/src/haizea/core/scheduler/preparation_schedulers/imagetransfer.py	2010-06-22 19:37:28 UTC (rev 808)
@@ -129,13 +129,14 @@
     def estimate_migration_time(self, lease):
         migration = get_config().get("migration")
         if migration == constants.MIGRATE_YES:
+            bandwidth = self.resourcepool.info.get_migration_bandwidth()
             vmrr = lease.get_last_vmrr()
-            images_in_pnode = dict([(pnode,0) for pnode in set(vmrr.nodes.values())])
-            for (vnode,pnode) in vmrr.nodes.items():
-                images_in_pnode[pnode] += lease.software.image_size
-            max_to_transfer = max(images_in_pnode.values()) * 2 # Kludge
-            bandwidth = self.resourcepool.info.get_migration_bandwidth()
-            return estimate_transfer_time(max_to_transfer, bandwidth)
+            #images_in_pnode = dict([(pnode,0) for pnode in set(vmrr.nodes.values())])
+            transfer_time = estimate_transfer_time(lease.software.image_size, bandwidth) * len (vmrr.nodes)
+            #for (vnode,pnode) in vmrr.nodes.items():
+            #    images_in_pnode[pnode] += lease.software.image_size
+            #max_to_transfer = max(images_in_pnode.values()) * 2 # Kludge
+            return transfer_time
         elif migration == constants.MIGRATE_YES_NOTRANSFER:
             return TimeDelta(seconds=0)
 

Modified: branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/vm_scheduler.py	2010-06-22 18:34:55 UTC (rev 807)
+++ branches/1.1/src/haizea/core/scheduler/vm_scheduler.py	2010-06-22 19:37:28 UTC (rev 808)
@@ -133,16 +133,14 @@
         """                
         migration = get_config().get("migration")
         if migration == constants.MIGRATE_YES:
+            bandwidth = self.resourcepool.info.get_migration_bandwidth()            
             vmrr = lease.get_last_vmrr()
             #mem_in_pnode = dict([(pnode,0) for pnode in set(vmrr.nodes.values())])
-            max_mem_to_transfer = 0
+            transfer_time = 0
             for pnode in vmrr.nodes.values():
                 mem = vmrr.resources_in_pnode[pnode].get_by_type(constants.RES_MEM)
-                max_mem_to_transfer += mem
-                #mem_in_pnode[pnode] += mem
-            #max_mem_to_transfer = max(mem_in_pnode.values()) * 2 # Kludge
-            bandwidth = self.resourcepool.info.get_migration_bandwidth()
-            return estimate_transfer_time(max_mem_to_transfer, bandwidth)
+                transfer_time += estimate_transfer_time(mem, bandwidth)
+            return transfer_time
         elif migration == constants.MIGRATE_YES_NOTRANSFER:
             return TimeDelta(seconds=0)        
 



More information about the Haizea-commit mailing list