ANNOUNCE: DBIx::HA 0.91, High Availability for DBI
[email protected] (Henri Asseily) Wed, 20 Oct 2004 16:51:39 -0700
| Newsgroups | perl.dbi.users,perl.dbi.announce |
|---|---|
| Message-ID | <[email protected]> |
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