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.
Merged changes from trunk to correctly support ONE_AUTH and the OpenNebula authorization file.
TimeDelta configuration values are specified as an integer (seconds) not in HH:MM:SS format.
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
Additional stats printing functions
haizea-lwf-stats now prints more stats
- 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
haizea-convert-data now supports data files with different sets of attributes/metrics (files without a given attribute/metric just report it as an empty string)
- 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
Several bug fixes in unit tests. Some of the deadline tests are currently still failing.
- Changed unit tests to use test_* functions instead of Test* classes. Newer py.test is apparently not too happy about test classes having a constructor.- Minor changes.
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
Beginnings of haizea.lwf package
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)
- Fix bug in CPU parameter- Use mx.Parser instead of mx.ISO
More correct utilization formula
- Added several deadline unit tests- Added test for corner case of premature end coinciding with real end
--export option in haizea-generate-scripts
Make haizea-lwf-annotate and haizea-swf2lwf executable
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
Modified lease preemptability score for deadline leases.
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.
Fixed bug: rejected price wasn't being recorded in some cases.
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
Added deadline test that verifies that preemptables leases are correctly ordered according to slack.
More terminology fudging
Take into account that deadline leases can also be preempted without suspension.
Terminology change: "rate" instead of "fair price" and "markup"
Changes to deadline tests. Added deadline+pricing test. Small fixes.
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
Modified annotator to support LWF files generated from artificial SWF files.