Changes for version 2.60 - 2012-11-06

  • -Significant changes to Helios database connection handling, including a specialized Data::ObjectDriver class and TheSchwartz extensions. Helios now aggressively caches database connections at the DBI layer and uses DBI features to properly handle database connect/disconnect between daemon and worker processes. These improvements result in significant performance increases, especially when using Oracle as a collective database. One user's application experienced job throughput increases of ~70%. MySQL collectives should also experience speed increases and a reduced number of open connections. -NEW Helios::Config modular configuration API. Similar to Helios::Job and Helios::Logger, Helios::Config defines the basic Helios configuration API while also serving as a base class to build custom configuration modules for Helios applications. To define a custom configuration API for a Helios application, specify a ConfigClass() method in your Helios::Service subclass. Auxiliary application pieces such as scripts and cronjobs can use Helios::Config to get the application's configuration without needing to instantiate the application class and calling the prep() method as in the past. Helios::Config makes the Helios configuration API more robust, modular, and flexible. See the Helios::Config POD for more details. NOTE: Helios::Service->getConfigFrom*() methods are now deprecated in favor of Helios::Config->parseConfig(). The prep() method uses Helios::Config and will continue to be supported. -NEW Helios exception class for configuration errors: Helios::Error::ConfigError. -NEW WORKER_MAX_TTL_WAIT_INTERVAL parameter to fine-tune use of WORKER_MAX_TTL with specific applications. -NEW WORKER_BLITZ_FACTOR configuration parameter to launch more workers sooner. -NEW configuration parameter documentation. All Helios out-of-box configuration parameters are now defined in a section of the Helios::Config POD. For more information about the new configuration parameters or any others, check the Helios::Config POD! -Helios::Service->dbConnect() has been updated to work with the new database connection caching scheme and to better support DBI options. -Bundle::Helios::Generic has been changed to Bundle::Helios and can be used to install Helios prerequisite modules with generic Perl installs. Bundle::Helios::RedHat was dropped in 2.41. See the INSTALL.* files in the main distribution directory to determine the right type of install method for your environment. -Improved module loading code. -Removal of most instances of Error module's try {} catch {} blocks in favor of Perl generic eval {} or do {}. -More tests. -Updated INSTALL.* files for generic Perl and CPAN installs and Red Hat/CentOS 6.x. BSD, Mac OS X, and other *nix should use the generic install instructions. (Debian and Ubuntu based instructions continue to be the quickest and easiest. Thank you Debian for your excellent Perl and CPAN packaging!)

Documentation

CGI script to receive jobs for Helios via HTTP POST
Launch a daemon to service jobs in the Helios job processing system
Submit a job to the Helios job processing system from the cmd line
Clean old log and history entries from the Helios database
a tutorial for getting started with Helios

Modules

install all Helios related modules
a distributed job processing system
base class for Helios configuration system
a convenience class to import all Helios::Error exception classes
base exception class for Helios services
exception class for Helios indicating a configuration error occurred
exception class for Helios indicating a database error occurred
fatal exception class for Helios indicating a job failed but can be re-attempted
fatal exception class for Helios indicating a job failed and the error was so serious the job should not be reattempted.
exception class for Helios indicating a job's args are invalid
exception class for Helios indicating an error occurred in the logging subsystem
exception class for Helios indicating a job was successful but it encountered errors during processing
base class for jobs in the Helios job processing system
Base class for sending Helios logging information to external loggers
Helios::Logger subclass implementing Helios internal logging
base class for metajob burst services in Helios
Data::ObjectDriver subclass for Helios
base class for services in the Helios job processing system
Helios::Service subclass useful for testing
TheSchwartz subclass for Helios

Provides

in lib/Helios/ConfigParam.pm
in lib/Helios/JobHistory.pm
in lib/Helios/LogEntry.pm
in lib/Helios/LogEntry/Levels.pm