MediaWiki active/active datacenter investigation and work (tracking)
Open, NormalPublic

Description

MediaWiki support for having "reads" (GET/HEAD requests) be routed to multiple datacenters, with writes (POST requests) going to a single datacenter. Having writes be routable to multiple datacenters is not in scope.

More details about what this project entails can be found in the Multi-datacenter RFC.

Related Objects

StatusAssignedTask
Openaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
OpenNone
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Openaaron
StalledNone
Declinedaaron
Resolvedaaron
Declinedaaron
Resolvedaaron
Resolvedmatthiasmullie
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
Declinedaaron
OpenNone
Resolvedaaron
Resolvedaaron
Resolvedaaron
Resolvedaaron
OpenNone
ResolvedJoe
Resolvedjcrespo
DuplicateNone
OpenNone
Resolvedjcrespo
Resolvedaaron
ResolvedSBisson
ResolvedKrinkle
ResolvedCatrope
OpenNone
Resolvedaaron
Resolvedaaron
Resolvedfgiunchedi
OpenNone
OpenCatrope
There are a very large number of changes, so older changes are hidden. Show Older Changes
Krinkle added a subscriber: Krinkle.Sep 4 2015, 3:25 AM
aaron added a subscriber: BBlack.Sep 30 2015, 5:40 PM
jcrespo added a subtask: Restricted Task.Oct 1 2015, 8:32 AM
Krinkle moved this task from Inbox to Doing on the Performance-Team board.Oct 5 2015, 6:04 PM

I analyzed the first 1 million lines of DBPerformance.log to find the most common errors. For the full results, see P2201 (a shorter version with truncated stack traces is at P2202).

Here's a summary of most of them, roughly in descending order of frequency:

  • CentralAuth
    • master connection in CentralAuthUser->loadAttached() from User->getEmail() from MoodBarHooks::makeGlobalVariablesScript()
    • master connection in CentralAuthUser->loadState() from various paths
      • CentralAuthUser->renameInProgress() from CentralAuthHooks::onUserLoadFromSession()
      • CentralAuthUser->existsOn() from CentralAuthHooks::isUserTheSameOn() from CentralAuthHooks::onLoadGlobalUserPage() (T92455)
      • CentralAuthUser->getId() from SpecialCentralAutoLogin->execute()
      • CentralAuthUser->exists() from SpecialCentralLogin->doLoginStart()
      • CentralAuthUser->exists() from SpecialGlobalGroupMembership->changeableGroups() from UserrightsPage->userCanExecute() from SpecialSpecialpages->execute()
      • CentralAuthUser->isOversighted() from SpecialCentralAuth->execute()
      • CentralAuthUser->isLocked() from CentralAuthHooks::getBlockLogLink()
      • and more
  • Flow
    • master connection in Flow\Data\Storage\BasicDbStorage->find() from Flow\ReferenceClarifier->loadReferencesForPage() from FlowHooks::onWhatLinksHereProps() and other Special:Whatlinkshere-related paths (T94028)
    • master connection in Flow\Data\Storage\RevisionStorage->findInternal() from:
      • Flow\Formatter\PostSummaryQuery->getResult() from Flow\Block\TopicSummaryBlock->init()
      • Flow\Block\HeaderBlock->init()
      • Flow\Formatter\ContributionsQuery->getResults() from SpecialContributions->execute() or other ContribsPager callers
      • Flow\Data\Storage\BasicDbStorage->find() from Flow\WorkflowLoaderFactory->loadWorkflowById() from Flow\WorkflowLoaderFactory->createWorkflowLoader() from Flow\Actions\ViewAction->showForAction()
      • Flow\Formatter\TopicListQuery->collectSummary() from Flow\Formatter\TopicListQuery->getResults()
      • and more
    • master connection in Flow\Data\Storage\RevisionStorage->findRevIdReal() from Flow\Collection\LocalCacheAbstractCollection->getAllRevisions() from Flow\Collection\CollectionCache->getLastRevisionFor() from Flow\RevisionActionPermissions->isAllowed() from Flow\Block\HeaderBlock->renderRevisionApi()
  • TranslatablePage
    • master connection in TranslatablePage->getTranslationPages()
    • master connection in TranslatablePage->getSections()
  • master connection in Wikibase\Lib\Store\Sql\WikiPageEntityMetaDataLookup->selectRevisionInformationMultiple()
  • write query(!) in ShortUrlUtils::encodeTitle() from ShortUrlHooks::addToolboxLink()
  • write query(!) in EchoUserNotificationGateway->markRead() from EchoHooks::onPersonalUrls() (also calls User->clearSharedCache()
  • master connection in Block->newLoad() from Title->checkUserBlock() from Title->getUserPermissionsErrorsInternal()
  • write query(!) in Category->refreshCounts() from CategoryViewer->getCountMessage()
  • write query(!) in User->deleteNewtalk() from SpecialNewMessages->execute()
  • master connection in SecurePoll_DBStore->getElectionInfo() from SecurePoll_SpecialSecurePoll->execute()
  • master connection in SqlBagOStuff->get() from ValidationStatistics->getTopReviewers()
  • master connection in AbuseFilterViewEdit->loadFilterData() from SpecialAbuseFilter->execute()
  • write query(!) in WikiPage->insertRedirectEntry() from WikiPage->followRedirect()
  • write query(!) in a transaction idle callback closure in MessageGroupStats
  • write query(!) in MessageBlobStore->insertMessageBlob() from ResourceLoader->makeModuleResponse()
  • write query(!) in Block->deleteIfExpired() from Block->newLoad() from Title->checkUserBlock() from Title->getUserPermissionsErrorsInternal()
jcrespo closed subtask Restricted Task as Resolved.Nov 6 2015, 3:32 PM
brion added a subscriber: brion.Apr 23 2016, 12:11 PM
bd808 removed a subscriber: bd808.Jun 10 2016, 1:27 AM
aaron renamed this task from MediaWiki multi-datacenter investigation and work to MediaWiki active/active datacenter investigation and work.Aug 11 2016, 12:10 AM
Krinkle moved this task from Doing to MediaWiki-MultiDC on the Availability board.May 3 2017, 8:02 PM
Krinkle edited projects, added Availability (MediaWiki-MultiDC); removed Availability.
elukey added a subscriber: elukey.May 4 2017, 12:57 PM
Imarlier moved this task from Doing to Next-up on the Performance-Team board.Jan 18 2018, 3:56 PM
Krinkle removed a subscriber: Krinkle.Jan 23 2018, 12:03 AM
Krinkle renamed this task from MediaWiki active/active datacenter investigation and work to MediaWiki active/active datacenter investigation and work (tracking).Wed, Jun 20, 9:55 AM