[haizea-commit] r760 - in branches/1.1/src/haizea: core core/scheduler pluggable/policies
haizea-commit at mailman.cs.uchicago.edu
haizea-commit at mailman.cs.uchicago.edu
Tue Jan 12 19:36:21 CST 2010
Author: borja
Date: 2010-01-12 19:36:21 -0600 (Tue, 12 Jan 2010)
New Revision: 760
Modified:
branches/1.1/src/haizea/core/leases.py
branches/1.1/src/haizea/core/scheduler/lease_scheduler.py
branches/1.1/src/haizea/pluggable/policies/pricing.py
Log:
Fixes to pricing when preempting-but-not-suspending
Modified: branches/1.1/src/haizea/core/leases.py
===================================================================
--- branches/1.1/src/haizea/core/leases.py 2010-01-13 01:12:54 UTC (rev 759)
+++ branches/1.1/src/haizea/core/leases.py 2010-01-13 01:36:21 UTC (rev 760)
@@ -729,6 +729,7 @@
(Lease.STATE_FAIL, "")],
Lease.STATE_ACTIVE: [(Lease.STATE_SUSPENDING, ""),
+ (Lease.STATE_READY, ""),
(Lease.STATE_QUEUED, ""),
(Lease.STATE_DONE, ""),
(Lease.STATE_CANCELLED, ""),
Modified: branches/1.1/src/haizea/core/scheduler/lease_scheduler.py
===================================================================
--- branches/1.1/src/haizea/core/scheduler/lease_scheduler.py 2010-01-13 01:12:54 UTC (rev 759)
+++ branches/1.1/src/haizea/core/scheduler/lease_scheduler.py 2010-01-13 01:36:21 UTC (rev 760)
@@ -780,6 +780,11 @@
lease_to_preempt.remove_vmrr(preempt_vmrr)
self.vm_scheduler.cancel_vm(preempt_vmrr)
cancelled.append(lease_to_preempt.id)
+
+ if lease_to_preempt.get_state() == Lease.STATE_SUSPENDED_SCHEDULED:
+ lease.set_state(Lease.STATE_SUSPENDED_READY)
+ else:
+ lease.set_state(Lease.STATE_READY)
for lease_to_preempt in preempted_leases:
if lease.id in cancelled:
Modified: branches/1.1/src/haizea/pluggable/policies/pricing.py
===================================================================
--- branches/1.1/src/haizea/pluggable/policies/pricing.py 2010-01-13 01:12:54 UTC (rev 759)
+++ branches/1.1/src/haizea/pluggable/policies/pricing.py 2010-01-13 01:36:21 UTC (rev 760)
@@ -25,6 +25,7 @@
from haizea.core.scheduler.policy import PricingPolicy
from haizea.common.utils import get_config
from haizea.common.stats import percentile
+import haizea.common.constants as constants
import random
@@ -70,6 +71,8 @@
return (lease.duration.requested.seconds / 3600.0) * lease.numnodes * rate
def get_surcharge(self, preempted_leases):
+ if get_config().get("suspension") == constants.SUSPENSION_NONE:
+ return 0
surcharge = 0
for l in preempted_leases:
suspend_time = l.estimate_suspend_time()
@@ -155,8 +158,8 @@
lease -- Lease that is being scheduled.
preempted_leases -- Leases that would have to be preempted to support this lease.
"""
- rate = float(lease.extras["simul_userrate"])
- return self.get_base_price(lease, rate)
+ self.rate = float(lease.extras["simul_userrate"])
+ return self.get_base_price(lease)
class UserInfo(object):
def __init__(self):
@@ -190,7 +193,7 @@
lease -- Lease that is being scheduled.
preempted_leases -- Leases that would have to be preempted to support this lease.
"""
- return self.get_price(lease)
+ return self.get_price(lease, preempted_leases)
def feedback(self, lease):
"""Called after a lease has been accepted or rejected, to provide
More information about the Haizea-commit
mailing list