NAME
Class::DBI::Replicated - Replication from single master to multiple slaves
VERSION
Version 0.040
SYNOPSIS
package My::DBI;
use base qw(Class::DBI::Replicated::mysql);
# use base qw(Class::DBI::Replicated::Pg::Slony1);
My::DBI->replication(\%arg);
DESCRIPTION
Class::DBI::Replicated does some stuff, blah blah.
METHODS
replication
$class->replication(\%arg);
Analogous to connection
. Takes a single hashref.
- master
-
a single arrayref (as passed to
connection
) - slaves
-
an arrayref of arrayrefs, one per slave. NOTE: currently, using more than one slave does nothing.
- user
- password
-
If present, these specify the user and password to use for replication-specific queries (such as MySQL's
SHOW MASTER STATUS
).
replication_db
Returns the name of the current database in use (minus the leading db_
).
db_Main
Return a master or slave DBH, as dictated by the current replication state.
db_Slave
Always returns a DBH for the most recently-used slave.
db_Master
Generated by Class::DBI.
db_Slave_Repl
Most recently-used slave's connection for replication.
Falls back to db_Slave if no user/password given
db_Master_Repl
Master's connection for replication.
Falls back to db_Master if no user/password given
switch_to_master
switch_to_slave
wait_for_slave
REPLICATION METHODS
That is, methods dealing specifically with replication positions.
repl_mark
Get current master position and save it
repl_pos
Class data accessor/mutator for current marked master position
repl_get_master
virtual (scalar)
repl_get_slave
virtual (scalar)
repl_check
if ($class->repl_check) { ...
repl_wait
unless ($class->repl_wait(\%arg)) {
# not up to date
}
Possible arguments:
- timeout
-
defaults to 30
- slave
-
slave name, defaults to the first one
- fatal
-
die instead of returning 0
return 0 for failure
repl_compare
my $later = $class->repl_compare($my_pos, $master_pos);
virtual (boolean)
return 1 if $my_pos is at least as new as $master_pos return 0 otherwise
TRIGGERS
before_create
before_update
before_delete
switch to using master
after_create
after_update
after_delete
mark master position
select
SUBCLASSING
mk_force_masters
mk_markers
replication_args
Extra Params::Validate specifications for replication
.
replication_setup
Called automatically inside replication
.
Gets a hashref of the arguments to replication
.
AUTHOR
Hans Dieter Pearcey, <hdp@cpan.org>
BUGS
Please report any bugs or feature requests to bug-class-dbi-replicated@rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Class-DBI-Replicated. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
Copyright 2005 Hans Dieter Pearcey, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.