Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Hello everyone,

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
2. all Front READ requests go to SLAVE
3. all Front WRITE requests go to MASTER
4. all Front Search READ go to MASTER

To enable load balancing:

1. add $_CONFIG['Database']['LoadBalancing'] = '1'; to /system/config.php
file
2. create /system/db_servers.php file with following content:

<?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
    ),
);

3. 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

Error rendering macro 'jira' : Unable to locate Jira server for this macro. It may be due to Application Link configuration.


Attaching patch developed by Alex and tested by myself on 1 Master and 3
Slave servers.

Additional tests highly recommended and appreciated.

DA

db_load_balancer_v2.patch

  • No labels