[haizea-commit] r816 - branches/1.1/src/haizea/core/scheduler
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Fri Jun 25 19:28:03 CDT 2010
Author: borja
Date: 2010-06-25 19:28:03 -0500 (Fri, 25 Jun 2010)
New Revision: 816
Modified:
branches/1.1/src/haizea/core/scheduler/slottable.py
branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
Log:
Fix bug in availability window optimization
Modified: branches/1.1/src/haizea/core/scheduler/slottable.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/slottable.py 2010-06-25 23:06:05 UTC (rev 815)
+++ branches/1.1/src/haizea/core/scheduler/slottable.py 2010-06-26 00:28:03 UTC (rev 816)
@@ -784,8 +784,13 @@
changepoints = set()
res = self.get_reservations_after(after)
if VMRR_ONLY:
- from haizea.core.scheduler.vm_scheduler import VMResourceReservation
- res = [r for r in res if isinstance(r, VMResourceReservation)]
+ from haizea.core.scheduler.vm_scheduler import VMResourceReservation, SuspensionResourceReservation, ResumptionResourceReservation, ShutdownResourceReservation
+ vmrrs = set([r for r in res if isinstance(r, VMResourceReservation)])
+ vmrrs = vmrrs.union([r.vmrr for r in res if isinstance(r, SuspensionResourceReservation)
+ or isinstance(r, ResumptionResourceReservation)
+ or isinstance(r, ShutdownResourceReservation)
+ ])
+ res = list(vmrrs)
for rr in res:
if VMRR_ONLY:
start = rr.get_first_start()
@@ -1123,8 +1128,14 @@
# Get reservations that will affect the availability window.
rrs = self.slottable.get_reservations_after(time)
if VMRR_ONLY:
- from haizea.core.scheduler.vm_scheduler import VMResourceReservation
- rrs = [(r.get_first_start(), r) for r in rrs if isinstance(r, VMResourceReservation)]
+ from haizea.core.scheduler.vm_scheduler import VMResourceReservation, SuspensionResourceReservation, ResumptionResourceReservation, ShutdownResourceReservation
+ vmrrs = set([r for r in rrs if isinstance(r, VMResourceReservation)])
+ vmrrs = vmrrs.union([r.vmrr for r in rrs if isinstance(r, SuspensionResourceReservation)
+ or isinstance(r, ResumptionResourceReservation)
+ or isinstance(r, ShutdownResourceReservation)
+ ])
+ rrs = list(vmrrs)
+ rrs = [(r.get_first_start(), r) for r in rrs]
rrs.sort(key=itemgetter(0))
rrs = [r for s, r in rrs]
else:
Modified: branches/1.1/src/haizea/core/scheduler/vm_scheduler.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/vm_scheduler.py 2010-06-25 23:06:05 UTC (rev 815)
+++ branches/1.1/src/haizea/core/scheduler/vm_scheduler.py 2010-06-26 00:28:03 UTC (rev 816)
@@ -1153,10 +1153,11 @@
all_vnodes = []
for (pnode,vnodes) in node_mappings.items():
num_vnodes = len(vnodes)
- r = Capacity([constants.RES_MEM,constants.RES_DISK])
+ r = Capacity([constants.RES_CPU,constants.RES_MEM,constants.RES_DISK])
mem = 0
for vnode in vnodes:
mem += vmrr.lease.requested_resources[vnode].get_quantity(constants.RES_MEM)
+ r.set_quantity(constants.RES_CPU, 100) # TODO: Need to get the same quantity as pnode
r.set_quantity(constants.RES_MEM, mem * num_vnodes)
r.set_quantity(constants.RES_DISK, mem * num_vnodes)
suspres[pnode] = self.slottable.create_resource_tuple_from_capacity(r)
@@ -1213,10 +1214,11 @@
all_vnodes = []
for (pnode,vnodes) in node_mappings.items():
num_vnodes = len(vnodes)
- r = Capacity([constants.RES_MEM,constants.RES_DISK])
+ r = Capacity([constants.RES_CPU,constants.RES_MEM,constants.RES_DISK])
mem = 0
for vnode in vnodes:
mem += vmrr.lease.requested_resources[vnode].get_quantity(constants.RES_MEM)
+ r.set_quantity(constants.RES_CPU, 100) # TODO: Need to get the same quantity as pnode
r.set_quantity(constants.RES_MEM, mem * num_vnodes)
r.set_quantity(constants.RES_DISK, mem * num_vnodes)
resmres[pnode] = self.slottable.create_resource_tuple_from_capacity(r)
More information about the Haizea-commit
mailing list