Compared to DBD::Multiplex, DBIx::HA does not do multiple simultaneous writes. However, it can probably be used in conjunction with DBD::Multiplex to provide a best of both worlds.
Subsequent releases will use Sys::SigAction for signal handling.
$CPAN/modules/by-authors/id/H/HA/HASSEILY/DBIx-HA-0.55.tar.gz
'DBIx-HA-0.55.tar.gz' => { 'mtime' => '2004-01-30', 'md5-ungz' => '8406276a98781073ae592009fc2bb48e', 'md5' => '915ed803e0a7d40bafbcb783766769c5', 'size' => 9335 }
From the README:
DBIx::HA is a High Availability module for DBI. It is implemented by overloading the DBI connect, prepare and execute methods and can be seamlessly used without code modification except for initialization.
DBIx::HA also works seamlessly with Apache::DBI when available, and
ensures that cached database handles in the Apache::DBI module are properly
released when failing over.
Features of DBIx::HA are:
- multiple failovers
Should a datasource become unavailable, queries are automatically sent to
the next available datasource in a user-configured datasource stack.
All subsequent queries continue to hit the failover server until
reinitialized. This ensures that a failed datasource can be properly brought
back online before it is put back in service.
- timeouts
Database calls are wrapped in user-configurable timeouts. Connect and execute
timeouts are handled independently.
- configurable retries Queries can be retried n times before a datasource is considered failed.
- callback function
A user-defined callback function can be called upon abnormal failure and
disconnection from a datasource in order to clean locally cached handles and
perform other housekeeping tasks.
- inter-process automatic failover under mod_perl
Failover can be triggered for a single process or a set of processes at the
application level. Specifically designed for Apache's multi-process model,
if one mod_perl process triggers a failover, it is propagated to all other
mod_perl processes using the same database handle.
DBIx::HA was designed primarily for reliability and speed. Functionality
that would compromise speed was not considered. This module has been tested
extensively at very high loads in the Apache/mod_perl/Sybase environment.
--- Henri Asseily