Project

General

Profile

Changelog

1.0 (12/17/09)

This is the first stable release of Haizea, with lots of changes since Technology Preview 1.3:

  • Support for pluggable scheduling policies: Whereas previous versions of Haizea used hardcoded scheduling policies (e.g., to determine whether a lease could be accepted, whether it should be preempted, etc.), this version allows users to choose between different policies, or to write their own custom policies that they can "plug into" Haizea. Writing a custom policy only requires writing a Python module implementing a set of methods described in the Haizea documentation.
  • Support for pluggable accounting probes: When running in simulation mode, Haizea collects data from the leases, the scheduler, etc. Previously, this data collection was hard-coded into several points of the scheduling code. This has been replaced for a more flexible framework where data to be collected is specified as "probes" that are invoked at certain points while Haizea is running. Similar to the new policy engine, collecting a new type of data only requires implementing a Python class (without having to modify Haizea's code).
  • Support for heterogeneous resources and arbitrary resource types: Previous versions of Haizea required that each lease be composed of homogeneous nodes (i.e., all the VMs in a lease had to request the same amount of resources), and only supported five resource types (CPU, Memory, Disk, Inbound network and Outbound network). This version supports leases with heterogeneous resource requirements and allows users to define arbitrary resource types that can then be requested by leases.
  • New LWF (Lease Workload Format): Leases are now described using a new XML format that, unlike the previous LWF, supports specification of heterogeneous nodes and arbitrary resource types.
  • OpenNebula 1.4 support: The OpenNebula enactment module has been updated to support OpenNebula 1.4. The new enactment module uses OpenNebula's XML-RPC API, instead of accessing the OpenNebula database directly.
  • More unit tests: Besides the existing trace-based unit tests (which run simple tracefiles with Haizea), new unit tests have been written to make sure that Haizea's core data structures, like the slot table and the resource mapper, are working correctly.
  • Data persistence: Haizea will now, by default, save all lease and scheduling data to disk, allowing it to recover from crashes. This feature is still a work in progress, and certain leases may be deemed "unrecoverable" after a crash (e.g., if an advance reservation lease was set to start at 2pm but Haizea crashes before then and isn't restarted until 3pm, Haizea will simply transition the lease to a failed state).
  • Epydoc documentation: The previous beta introduced pydoc documentation. We've switched to Epydoc, which generates much better HTML documentation.

The changes relative to 1.0 Beta 2 are mostly minor:

  • Documented slottable module (see Haizea API Documentation). This should be a useful resource for anyone implementing pluggable policies or accounting probes, as these will usually require access to the slot table.
  • Made a few changes that should make Haizea compatible with Python 2.4.
  • Minor bug fixes reported by users.

0.9.2 ("1.0 Beta 2") (09/04/09)

This is the second (and final) beta on the road to Haizea 1.0. It adds a couple features that were not ready in time for 1.0 Beta 1, but which were not essential to releasing the previous beta, and several bug fixes.

Summary of changes:

  • Data persistence: Haizea will now, by default, save all lease and scheduling data to disk, allowing it to recover from crashes. This feature is still a work in progress, and certain leases may be deemed "unrecoverable" after a crash (e.g., if an advance reservation lease was set to start at 2pm but Haizea crashes before then and isn't restarted until 3pm, Haizea will simply transition the lease to a failed state).
  • Support for pluggable accounting probes: When running in simulation mode, Haizea collects data from the leases, the scheduler, etc. Previously, this data collection was hard-coded into several points of the scheduling code. This has been replaced for a more flexible framework where data to be collected is specified as "probes" that are invoked at certain points while Haizea is running. Similar to the new policy engine (introduced in 1.0 Beta 1), collecting a new type of data only requires implementing a Python class (without having to modify Haizea's code).
  • Epydoc documentation: The previous beta introduced pydoc documentation. We've switched to Epydoc, which generates much better HTML documentation.

0.9 ("1.0 Beta 1") (08/07/09)

This release (originally planned as the "Technology Preview 2.0" release) is the first of two betas on the road to Haizea 1.0. It includes several major new features, and lays the groundwork for other features that will be included in the 1.0 release.

Summary of changes:

  • Support for pluggable scheduling policies: Whereas previous versions of Haizea used hardcoded scheduling policies (e.g., to determine whether a lease could be accepted, whether it should be preempted, etc.), this version allows users to choose between different policies, or to write their own custom policies that they can "plug into" Haizea. Writing a custom policy only requires writing a Python module implementing a set of methods described in the Haizea documentation.
  • Support for heterogeneous resources and arbitrary resource types: Previous versions of Haizea required that each lease be composed of homogeneous nodes (i.e., all the VMs in a lease had to request the same amount of resources), and only supported five resource types (CPU, Memory, Disk, Inbound network and Outbound network). This version supports leases with heterogeneous resource requirements and allows users to define arbitrary resource types that can then be requested by leases.
  • New LWF (Lease Workload Format): Leases are now described using a new XML format that, unlike the previous LWF, supports specification of heterogeneous nodes and arbitrary resource types.
  • OpenNebula 1.4 support: The OpenNebula enactment module has been updated to support OpenNebula 1.4. The new enactment module uses OpenNebula's XML-RPC API, instead of accessing the OpenNebula database directly.
  • More unit tests: Besides the existing trace-based unit tests (which run simple tracefiles with Haizea), new unit tests have been written to make sure that Haizea's core data structures, like the slot table and the resource mapper, are working correctly.
  • Pydoc documentation: Most of Haizea's modules are now fully documented using Pydoc. A browsable HTML version is provided on the Haizea website for developers who want to write their own custom policies.
  • New project management site: The PhoenixForge site where Haizea is hosted has recently migrated to a Redmine site (from the previous Trac-based Dr.Project site). This new site provides a much better web interface and several other project management features.

Technology Preview 1.3 (02/16/09)

This release includes mostly internal changes that, although not visibly apparent to the user, make Haizea's code more stable and less error-prone. Many of these changes are also necessary for TP2.0, which will include a policy engine and requires a substantial redesign of the scheduling code.

Summary of changes:

  • Added support for OpenNebula 1.2.
  • Improved exception handling so all exceptions are caught and processed
  • Improved lease state management
  • Added automated testing with py.test.
  • Added explicit scheduling of shutdown operations and cold migrations.
  • Refactored the scheduling code into multiple modules

There have been many other minor changes (particularly to the scheduling data structures) and bug fixes.

Technology Preview 1.2 (09/29/08)

Summary of changes:

  • Haizea can now run in interactive simulation mode, allowing the user to interactively request leases and monitor their progress using a command-line interface. This command-line interface can also be used in OpenNebula mode to obtain more details about leases. * OpenNebula users can now request that a group of VMs be managed as a single lease (meaning that all the VMs must start/suspend/resume/stop at the same time). * Added the Haizea Manual as a primary source of documentation for the project. Check it out at <http://haizea.cs.uchicago.edu/documentation.html> * PhoenixForge, the collaborative project management website run by the University of Chicago's ACM chapter, has now been fully launched, meaning that bug tracking, SVN browsing, a wiki, and other project management functionalities, are now available at <http://phoenixforge.cs.uchicago.edu/haizea> * As always, lots of internal improvements in the code: overhauled the configuration management code and the logging code, Haizea now runs as a real daemon in OpenNebula mode, trimmed down the slot table code, general code cleaning and documenting, and lots of other minor fixes.

Technology Preview 1.1 (07/24/08)

Summary of changes:

  • Added support for OpenNebula 1.0. You can now use OpenNebula and Haizea together to manage virtual machines on a Xen or KVM cluster. * Added support for immediate leases. * Re-added accounting and reporting functionality (which had been temporarily removed in TP1.0). * Code changes: Decoupled deployment overhead scheduling into a separate "deployment" package (although there's still quite a bit left to do). Cleaned up and documented some of the main modules. Multiple small fixes.

Technology Preview 1.0 (07/07/08)

First public release.