remove stale link and doc readonly pool queries
Caleb Cushing [Thu, 2 Feb 2012 21:25:44 +0000 (15:25 -0600)]
transactions cause an implicit force to master, this documents how you can
override this to force to pool

Signed-off-by: Caleb Cushing <xenoterracide@gmail.com>

lib/DBIx/Class.pm
lib/DBIx/Class/Storage/DBI/Replicated.pm

index 615db2b..caa8a49 100644 (file)
@@ -506,6 +506,8 @@ willert: Sebastian Willert <willert@cpan.org>
 
 wreis: Wallace Reis <wreis@cpan.org>
 
+xenoterracide: Caleb Cushing <xenoterracide@gmail.com>
+
 yrlnry: Mark Jason Dominus <mjd@plover.com>
 
 zamolxes: Bogdan Lucaciu <bogdan@wiz.ro>
index 05b6e19..1b50a46 100644 (file)
@@ -56,9 +56,9 @@ be delegated to the replicants, while writes to the master.
 You can force a given query to use a particular storage using the search
 attribute 'force_pool'.  For example:
 
-  my $RS = $schema->resultset('Source')->search(undef, {force_pool=>'master'});
+  my $rs = $schema->resultset('Source')->search(undef, {force_pool=>'master'});
 
-Now $RS will force everything (both reads and writes) to use whatever was setup
+Now $rs will force everything (both reads and writes) to use whatever was setup
 as the master storage.  'master' is hardcoded to always point to the Master,
 but you can also use any Replicant name.  Please see:
 L<DBIx::Class::Storage::DBI::Replicated::Pool> and the replicants attribute for more.
@@ -68,8 +68,12 @@ force read traffic to the master.  In general, you should wrap your statements
 in a transaction when you are reading and writing to the same tables at the
 same time, since your replicants will often lag a bit behind the master.
 
-See L<DBIx::Class::Storage::DBI::Replicated::Instructions> for more help and
-walkthroughs.
+If you have a multi-statement read only transaction you can force it to select
+a random server in the pool by:
+
+  my $rs = $schema->resultset('Source')->search( undef,
+    { force_pool => $db->storage->read_handler->next_storage }
+  );
 
 =head1 DESCRIPTION