DBIx::Class::Storage::DBI::Replicated::Balancer::Random - A 'random' Balancer
This class is used internally by DBIx::Class::Storage::DBI::Replicated. You shouldn't need to create instances of this class.
Given a pool (DBIx::Class::Storage::DBI::Replicated::Pool) of replicated database's (DBIx::Class::Storage::DBI::Replicated::Replicant), defines a method by which query load can be spread out across each replicant in the pool.
This Balancer uses List::Util keyword 'shuffle' to randomly pick an active replicant from the associated pool. This may or may not be random enough for you, patches welcome.
This class defines the following attributes.
A number greater than 0 that specifies what weight to give the master when choosing which backend to execute a read query on. A value of 0, which is the default, does no reads from master, while a value of 1 gives it the same priority as any single replicant.
For example: if you have 2 replicants, and a "master_read_weight" of 0.5, the chance of reading from master will be 20%.
0.5
20%
You can set it to a value higher than 1, making master have higher weight than any single replicant, if for example you have a very powerful master.
This class defines the following methods.
Returns an active replicant at random. Please note that due to the nature of the word 'random' this means it's possible for a particular active replicant to be requested several times in a row.
Check the list of additional DBIC resources.
This module is free software copyright by the DBIx::Class (DBIC) authors. You can redistribute it and/or modify it under the same terms as the DBIx::Class library.
To install DBIx::Class, copy and paste the appropriate command in to your terminal.
cpanm
cpanm DBIx::Class
CPAN shell
perl -MCPAN -e shell install DBIx::Class
For more information on module installation, please visit the detailed CPAN module installation guide.