ANNOUNCE: DBIx::HA 0.91, High Availability for DBI

From: Henri Asseily (henri_at_bizrate.com)
Date: 10/21/04


To: "'dbi-users'" <dbi-users@perl.org>, "'dbi-announce'" <dbi-announce@perl.org>
Date: Wed, 20 Oct 2004 16:51:39 -0700

DBIx::HA is a pure-perl high availability module for DBI. It
specializes in failover and integrates properly with mod_perl and
Apache::DBI, and should be integrated in your programs if you are using
Oracle listeners or Sybase OpenSwitch (or any other database-level high
availability layer).
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.
This release is the first one to use the new DBI swap_inner_handle()
method, which allows for handles to be replaced without touching the
originating code. Therefore it is not yet extensively tested in
production, and proper care should be taken. However, many bugs have
been fixed from the previous version, and the code has been
significantly simplified (thanks again to swap_inner_handle()).

$CPAN/modules/by-authors/id/H/HA/HASSEILY/DBIx-HA-0.91.tar.gz

 From the README:

DBIx/HA version 0.91
====================

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 perform housekeeping tasks
unique
to the user's application.

- 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.

DEPENDENCIES

This modules requires Perl >= 5.6.0, DBI >= 1.44 and Sys::SigAction.
Apache::DBI is recommended when using mod_perl.
If using Apache::DBI, version 0.89 or above is required.

---
Henri Asseily

Quantcast