If we're not using suspension, set the scheduling threshold to 0.
suspend-rate and resume-rate should only be required when using suspension.
Fixed: Lease-to-XML did not take into account multi-instance resources.
Correctly detect the number of CPU instances on the hosts
- Fix call to Lease.create_new- Use Parser instead of ISO for dates
When marshalling the information about a host, include the sum of all the CPU instances (not entirely accurate, but still better than just reporting the first instance)
Remove redundant code that checks for new hosts in simulation
When printing string representation of Capacity, include multiple instances
If lease is in state SUSPENDED_SCHEDULED, don't remove its files when it is cancelled.
Fixed bug in how cp_list is constructed
Suspend/Resume RRs should consume CPU
Dirty kluge to avoid conflicts in loaded and injected leases.
Fixed bug in weird corner case where a lease could be scheduled in such a way that the shutdown, and not the VM, would have to be suspended (which is not possible).
Saner migration scheduling
- Allow a lease in preparing state to be preempted- Multiple minor fixes to preparation scheduler (mostly avoid referring to leases by their ID, and simply store the lease object directly)
Lease in PREPARING state should be able to return to QUEUED state.
Bug in how slowdown is computed
- Another fix to image transfer scheduling for ARs- Added sanity check to make sure image transfers are not scheduled incorrectly.
Extra check
Not sure why this was commented out (maybe a stopgap measure?) but it shouldn't be commented out.
Extra logging
Not entirely sure what's the root of this, but when using image transfers the availability window doesn't seem to get properly cached. This fix seems to shave ~30% off the time it takes to run the simulations that involve image transfers.
Preparation scheduling for AR leases was broken. THere were cases when it would schedule an image transfer that was actually infeasible.
Since preparation scheduling can result in an infeasible lease, preemptions should be done after the preparation has been scheduled.
Fixed wrong handling of attributes in multiconfig files
- Modified LWF generator so it won't have an empty ramp-up period.- Minor fixes here and there.
Fixed bug when determining the "first start" of a VMRR. Shouldn't include the migration RRs.
Fix bug in availability window optimization
Fixed some bugs in optimization. Added a flag to turn it off (albeit in a kludgy way), because otherwise the slottable unit tests get confused.
More optimizations
A few optimizations (still need to be polished a bit)
Fixed uninitialized variable
Added option to interrupt simulation after a given amount of (simulated) time has passed.
Bug: lease/lease.id confusion
Another error-propagation bug in estimating times.
- 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.
Minor fixes
More small bug fixes
Small bug fixes
Miscellaneous small bug fixes.
- Added support for lease annotation files where the annotations are not bound to a specific lease- haizea-lwf-stats now prints a summary of requested images- Tweaked discrete distributions in stats module
Utilization-based LWF generation (still needs some work, but mostly done)
LWF generator mostly working
Fixed bug in creation of resource tuples with multi-instance resources where the original Capacity object doesn't specify a value for the multi-instance resource.
Fixed minor bugs (https://mailman.cs.uchicago.edu/pipermail/haizea/2010-May/000153.html)
Pushing a bunch of minor changes.
Allow premature ends to happen in the actual end (this can happen in weird corner cases)
Reschedule leases after a premature end
Fixed: When rescheduling, can't schedule earlier than the requested start time
When scheduling deadline leases, do the preemptions when mapping (fixes the problem that the preemption policy could select leases that "looked" preemptable because of their slack, but turned out not to be because they couldn't be rescheduled).
Allow the slottable to be saved more than once (using a stack)
Catch exception from schedule_asap
When scheduling as soon as possible, don't bother to look at changepoints that don't allow the deadline to be met.
Store more information about leases in the accounting file
Multiple small fixes
This kludge is no longer necessary now that we handle premature ends more sanely.
Fix to bug that showed up when running Haizea with larger workloads.
Lists of reservations returned by the slottable have to be sorted before they can be used.
More sanity checks
Add option to perform a sanity check at every timestep.
Determining if a lease can be suspended should also take into account the current time.
Saner handling of premature ends in simulations.
Fixes to several bugs that showed up when running Haizea with larger workloads.
- Optimized rescheduling of deadline leases- Allow leases to be preempted at any point, not just at the "last vm" - Enable rescheduling of deadline leases when a lease ends prematurely
More fixes to corner-case bugs arising when running on long workloads.
Minor bugs
Fixes to pricing when preempting-but-not-suspending
Take into account that deadline leases can also be preempted without suspension.
Terminology change: "rate" instead of "fair price" and "markup"
Miscellaneous fixes to deadline scheduling. Added pricing of surcharge from preempted leases.
Fixed: Initial estimation of the time to suspend/resume was too big (scheduled time was still ok)
Corrections to deadline scheduling with preemption.
Beginnings of preemption support in deadline scheduling
Add parameter to the mapper to specify if preemption is allowed.
Move suspension/resumption time estimation methods from VMScheduler to Lease
- Leases should be sorted by stretch factor, not absolute deadline- The earliest starting time can't be earlier than the current time
Replaced deadline scheduling algorithm with slightly better one.
Add methods to save and restore slottable state. Useful to test a new schedule without modifying the current one.
Save the fair price when the lease is rejected as non-schedulable
Don't remove lease RRs is the debug level is VDEBUG; that information is useful for debugging.
Plugging a few more potential memory leaks (explicitly remove circular references between VM RR and other RRs)
Tweaked status message
Remove RRs from lease as soon as they're done. Otherwise, this results in Haizea eating up a lot of memory.
Print types of completed leases in status message
Don't overwrite lease id if already provided in tracefile
Miscellaneous changes to supporte REJECTED_BY_USER state
Check that a per-lease stat doesn't already exist when creating it
Print a more helpful status message
Use incremental parsing when reading attributes from tracefiles (no need to read entire file when attributes are right at the beginning)
Added a REJECTED_BY_USER state to leases
Miscellaneous minor bug fixes.
Add method to pricing policies that allows the scheduler to provide "feedback" to the policy module (needed for adaptive policies)
Don't set value of lease.price unless the lease is accepted.