Wikimedia uses a single master and multiple slaves in
environment. Our biggest wiki, the English Wikipedia, has a separate
master to that of the other wikis, and a separate slave cluster, I
Indeed, there's no better example of scaled out mediawiki than
Even for single wiki, say English Wikipedia we use following
- Multiple tiers of Squids
- Multiple Apache/PHP servers, running MediaWiki
- Multiple memcached servers for object cache and various not-very-
- Multiple Lucene hosts serving search
- Multiple clusters (groups) of external storage nodes, each
consisting of small master-slaves replication system carrying a
subset of texts
- Master database
- Slave databases for general DB use ( can be promoted to master, if
- Slave databases allocated for specific DB use (as Ariel serves
- Slave databases extended/built for specific DB use (extended
indexing on db6 to allow faster contributions access)
- Multiple hosts running job queue (delayed tasks)
- Multiple load balancers between various components.
Once you need to scale more than English wikipedia, we can discuss
about additional possibilities to split some of the tasks.
All the code for above load balancing is inside mediawiki.
Domas Mituzas -- http://dammit.lt/