Hello everyone, Imported from: http://groups.google.com/group/in-portal-dev/browse_thread/thread/b6afcc5108850e64#
We are looking to have the ability to run In-Portal website in Database Load
Balanced environment. It's usually necessary for high load/availability
websites.
The idea is to have MASTER/SLAVE(s) configuration. This will separate
WRITE/READ database requests between 2+ servers (1 Master and 1+ Slaves
replicated from Master).
1.
- all Admin requests go to MASTER
...
- all Front READ requests go to SLAVE
...
- all Front WRITE requests go to MASTER
...
- all Front Search READ go to MASTER
To enable load balancing:1.
- add $_CONFIG['Database']['LoadBalancing'] = '1'; to /system/config.php
...
- file
...
create /system/db_servers.php file with following content:
Code Block <?php
...
$_CONFIG['Databases'] = Array
...
( Array ( 'DBHost' => 'slave.host1',
...
'DBUser' => 'slave.user1',
...
'DBUserPassword' => 'slave.user.password1',
...
'DBLoad' => 1,
...
), Array ( 'DBHost' => 'slave.host2',
...
'DBUser' => 'slave.user2',
...
'DBUserPassword' => 'slave.user.password2',
...
'DBLoad' => 1,
...
'DBMaxLag' => 15, // optional, slave replication delay in
...
seconds 'DBMaxThreads' => 100, // optional, when slave thread count is above
...
this number, then it won't be
...
used ),
...
);
...
only Slave Servers are listed in file above, since database
...
server defined in /system/config.php is considered as Master Server for
...
backwards compatibility.
See http://www.mediawiki.org/wiki/Manual:$wgDBservers for more details.
Most likely this functionality will be added to In-Portal 5.2.0, but has
been tested on 5.1.3 Beta2 - so can be applied if needed.
Task: 576: Separating Database Master/Slave Requests
Jira Legacy
Attaching patch developed by Alex and and tested by myself on 1 Master and 3
Slave servers.
Additional Additional tests highly recommended and appreciated.
DA
Related Tasks
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|