Page MenuHomePhabricator

Provide a "wiki farm" abstraction in MediaWiki core
Open, Needs TriagePublic

Description

A wiki farm is a group of wikis that work together in some meaningful way (share configuration or user identities, can access each others' database or files etc). It's a vague term as there are many different ways of running wikifarms, with different levels of integration. (It is sometimes also called a wiki cluster or a wiki family, although the latter is also used in a narrower sense, esp. by Pywikibot.) The working definition for this task is that a wikifarm is a group of wikis which can access each others' configuration to some extent, and their infrastructure is set up in such a way that acessing the configuration of another wiki also allows some level of direct data access (they are on the same internal network, etc).

Most large-scale MediaWiki users run wiki farms, because MediaWiki has poor support for some aspects of segmentation of a single wiki (e.g. with respect to language, access control, governance structures, browsing and searching...). But with no "official" support for wiki farms, a wide array of incompatible practices have developed around farms. (See the wiki family manual page for an overview.) Often these are complex and hard to use (including the setup used by Wikimedia); at the same time various wiki farm related concepts have leaked into core, even though they are often conceptually unclear and only work with some specific wikifarm setup (SiteConfiguration is a prime example).

Providing a clean "wiki farm" abstraction in MediaWiki core and reworking the various cross-wiki features (e.g. configuration, interwikis, file repos, "shadow namespace" style features, central user IDs, change tracking) would make MediaWiki less confusing and easier to use and develop, and would enable large MediaWiki users to share work more effectively and cooperate on improving wiki farm management tooling.

Event Timeline

Tgr created this task.Apr 22 2019, 7:07 AM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptApr 22 2019, 7:07 AM
Agabi10 added a subscriber: Agabi10.May 3 2019, 5:36 AM
Samwilson added a subscriber: Samwilson.
abi_ added a subscriber: abi_.May 3 2019, 6:46 AM
TK-999 added a subscriber: TK-999.May 27 2019, 4:10 PM

(moved from T224020):
How would this relate to the existing wikifarm related concepts that are already in core? It seems there is already:

  • SiteConfiguration / wgConf
  • WikiMap that builds on top of SiteConfiguration and combines (duplicates?) it with $wgLocalDatabases
  • SiteStore / SiteLookup, i.e. the sites table.

Personally I'm a bit worried that trying to create a new unified replacement would merely extend this list with a fourth option. It already doesn't seem clear (for me at least) how the existing implementations are distributed between use cases—for instance, the sites table only seems to be used by InterwikiLookupAdapter (that is not enabled by default,) WikiMap is extensively used to allow a wiki to push jobs into a job queue of a different wiki (which is a feature that only Wikibase seems to be making use of) etc.