Page MenuHomePhabricator

"This namespace is reserved for content page translations" when trying to translate a recently created translation unit
Closed, ResolvedPublic

Description

Current status

Completed mitigations around slow message index rebuild. The mitigations allow system to work as expected even while waiting message index to be rebuild. MessageIndex rebuild was optimised to take less than 20 seconds on MetaWiki.

Original report

Sometimes translators are unable to save translations due to error "This namespace is reserved for content page translations". This error should not happen in regular use, only in edge cases such as someone keeping a page open so long that the translatable page has changed in meanwhile, or manually editing URLs.

General causes

The underlying cause is a mismatch of the state in MessageIndex versus MessageCollection. MessageIndex is a reverse map of translation unit names to message groups. MessageCollection asks the message group directly what are the names of translation units in that group.

Every time there is a change to translation units, the code is supposed to run a MessageIndexRebuildJob. If this job is not run, or is delayed, or fails, then we get a mismatch of state.

There is additional check on the Translations namespace that prevents editing of translation units that do not correspond to any translatable pages. This is just to keep things tidy to avoid mistakes when people manipulate URLs by hand. Nothing bad would happen if this check was not there.

This issue happens on newly created translation units, or pages newly added for translations.

Current causes

We believe that currently this issue manifests when MessageIndexRebuildJob fails due to Exception: MessageIndex: unable to acquire lock. This means that some other MessageIndexRebuildJob is keeping the table locked for a long time. https://grafana.wikimedia.org/d/000000400/jobqueue-eventbus?orgId=1&from=now%2FM&to=now%2FM&var-site=All&var-type=MessageIndexRebuildJob provides some insight how long the job takes when run in JobQueue (but it is often run as part of other jobs as well).

This is happening when a lot of pages are marked for translations in a short time period. Given each update takes about 20 seconds, even three pages can cause the lock to time out after 30 seconds (first job 0-20s, second job 20-40s, third job fails at 30s).

Another case were this can happen is when MessageIndex is out of date, which can easily spawn a lot of jobs. Further debugging is needed to see if there is anything to fix there.

Options to explore

  • Increase the lock timeout
    • Only makes the problem rarer, could run in job execution time limit
  • Make it faster
    • Would need a profile from production
  • Re-architect to allow concurrency or incremental updates or combining multiple jobs
    • Likely a lot of work

Currently being done:

  • Some low hanging fruit to make the rebuild faster
  • Enabled de-duplication of jobs that are run via the job queue and using the job queue in more places
  • Investigating message index out of date condition frequency and causes

Workaround

Any other activity that makes the MessageIndexRebuildJob run again will "heal" the MessageIndex by making it up to date again. This is most easily accomplished by doing a dummy edit on any translatable page and marking it for translation. Sometimes just waiting a bit can help if the job is just slow or delayed.

We added a front-cache that temporarily caches newly added keys until the job finishes running. This mostly alleviates the user facing issues about the error, however message group stats and translation pages get out of sync every time the job fails in middle due to the lock timeout exception.

QA plan

Affected projects: Multilingual Wikimedia projects
Pre-deployment testing: skip
Post-deployment testing:

  • monitor Logstash for this error for 7 days after deployment to confirm the error MessageIndex: unable to acquire lock is fully gone or extremely infrequent
  • Check for performance improvements per T221119#6162764
  • Check Translate channel in Logstash for messages about MessageIndex

Outcome

Translators are able to translate pages recently marked for translation and Translate has less production issues related to the message index.

Details

SubjectRepoBranchLines +/-
mediawiki/extensions/Translatemaster+1 -1
mediawiki/extensions/Translatemaster+29 -7
mediawiki/extensions/CentralNoticemaster+11 -1
mediawiki/extensions/Translatemaster+14 -4
mediawiki/extensions/Translatemaster+9 -2
mediawiki/extensions/Translatemaster+77 -9
mediawiki/extensions/Translatemaster+22 -0
mediawiki/extensions/Translatemaster+114 -19
mediawiki/extensions/Translatemaster+5 -3
mediawiki/extensions/Translatemaster+36 -21
mediawiki/extensions/Translatemaster+131 -19
operations/mediawiki-configmaster+1 -0
mediawiki/extensions/Translatemaster+6 -2
operations/mediawiki-configmaster+2 -1
mediawiki/extensions/Translatemaster+2 -1
mediawiki/extensions/Translatemaster+115 -7
Show related patches Customize query in gerrit

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

I'm suggesting a new plan... consolidate this checking in MessageIndex. To make it performant, I'm suggesting that new keys are cached separately in a volatile cache, which can be cleared after the slow rebuild job has completed.

Change 589847 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/Translate@master] MessageIndex: add interim frontend caching

https://gerrit.wikimedia.org/r/589847

Change 589847 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] MessageIndex: add interim frontend caching

https://gerrit.wikimedia.org/r/589847

I'm suggesting a new plan... consolidate this checking in MessageIndex. To make it performant, I'm suggesting that new keys are cached separately in a volatile cache, which can be cleared after the slow rebuild job has completed.

Niklas submitted a patch to do this, and it has been tested and merged. Moving this to recheck after deployment.

In the past 7 days there has been about 113 instances of MessageIndex: unable to acquire lock, all in the job queue and either inside TranslationsUpdateJob or MessageIndexRebuildJob. I don't see any errors about "Unknown translation page" in Logstash [EDIT: 26 times in past 7 days], which I guess means that our check is working, given that I can confirm the slow-path is getting executed:

image.png (604×904 px, 103 KB)

My expectation is that the slow-path should get close to zero after the last patch is deployed. It's too early to say yet.

Change 594455 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/Translate@master] Instrument MessageIndex::rebuild

https://gerrit.wikimedia.org/r/594455

Change 594455 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Instrument MessageIndex::rebuild

https://gerrit.wikimedia.org/r/594455

@Krinkle I'd like to do a profile of MessageIndex::rebuild to see if there is any low hanging fruit. Easiest way to do that for me would be to run the createMessageIndex.php script with profiling, as there is no way to trigger this code path during a web request (and it could time out, as it takes 20s without profiling). I found https://gerrit.wikimedia.org/g/operations/mediawiki-config/+/29ae3d0c53afa3d9c88b0b7d07a0ac3cf014ddc6/wmf-config/profiler.php#93 but it does not work, I guess because https://wikitech.wikimedia.org/wiki/X-Wikimedia-Debug#Plaintext_request_profile says it only works with HHVM. Is there any way I can get a profile in production about this?

This impacts also other wikis which frozen the translations of new items. This is the case in [Kde https://userbase.kde.org/Special:Version] sleeping for days
MediaWiki 1.31.7 (e5ad47d) 26 mars 2020 à 15:05
Translate 2019-04-24 (0e35cb0) 24 octobre 2019 à 20:14

Is there a workaround from practical point of view, for their admin not to leave this locked situation ? This wiki has no excessive traffic and we cannot speak of real 'concurrence' between translators. Rather it seems the process 'send for translation' remains faulty.

Thanks.

Christian /FR.

@Wladek92 You should update to newer MediaWiki and latest MLEB, preferably to MLEB 2020.07, when it becomes available, which will contain the latest mitigations.

Change 597539 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/Translate@master] Split message index rebuild off of TranslationsUpdateJob and enable deduplication

https://gerrit.wikimedia.org/r/597539

[…] but it does not work, I guess because https://wikitech.wikimedia.org/wiki/X-Wikimedia-Debug#Plaintext_request_profile says it only works with HHVM. Is there any way I can get a profile in production about this?

The doc page mentioned HHVM for the purpose of saying "not PHP5" (later in the sentence). We have debug and plain text profiling on PHP 7.2 via Tideways which should work both via WikimediaDebug/XHGui, via WikimediaDebug/plain text, and via CLI/plain text.

Be sure to run it fom an mwdebug server as XHGui/Tideways are not installed on other servers.

Change 597539 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Split message index rebuild off of TranslationsUpdateJob and enable deduplication

https://gerrit.wikimedia.org/r/597539

Got a text profile output after a bunch of poking around (see T253547 for details):

11855324800.00% 37106.496 1 - MessageIndex::rebuild
21629789850.00% 32595.797 8752 - MessageIndex::checkAndAdd
3953680050.00% 19073.601 10660 - MessageGroupOld::getKeys
4940971100.00% 18819.422 10659 - WikiPageMessageGroup::getDefinitions
5868652650.00% 17373.053 15794 - Wikimedia\Rdbms\Database::select
6807331350.00% 16146.627 15887 - Wikimedia\Rdbms\Database::query
7795130750.00% 15902.615 15887 - Wikimedia\Rdbms\Database::executeQuery
8776173350.00% 15523.467 15887 - Wikimedia\Rdbms\Database::executeQueryAttempt
9673419600.00% 13468.392 15887 - Wikimedia\Rdbms\DatabaseMysqli::doQuery
10628895450.00% 12577.909 5558 - BannerMessageGroup::getKeys
11625662750.00% 12513.255 5558 - Banner::getMessageFieldsFromCache
12530646250.00% 10612.925 15816 - Wikimedia\Rdbms\DBConnRef::__call
13381035150.00% 7620.703 7084 - WANObjectCache::getWithSetCallback
14379370800.00% 7587.416 7084 - WANObjectCache::fetchOrRegenerate
15354256000.00% 7085.120 6360 - Title::getArticleID
16350771900.00% 7015.438 5948 - LinkCache::addLinkObj
17307439200.00% 6148.784 5558 - Banner::getMessageFieldsCacheKey
18302265500.00% 6045.310 5574 - Banner::getName
19301693350.00% 6033.867 5582 - Banner::populateBasicData
20300741052.63% 6014.821 5790 - section.query-m: SELECT trs_key,trs_text FROM `translate_sections` WHERE trs_page = N ORDER BY trs_order
21289503850.00% 5790.077 182 - AggregateMessageGroup::getKeys
22281839500.00% 5636.790 5650 - Wikimedia\Rdbms\DBConnRef::select
23280777450.00% 5615.549 7403 - WANObjectCache::get
24279088100.00% 5581.762 7403 - WANObjectCache::getMulti
25265932850.00% 5318.657 7404 - MediumSpecificBagOStuff::getMulti
26258083300.00% 5161.666 7404 - MemcachedPeclBagOStuff::doGetMulti
27241173900.00% 4823.478 4316 - LinkCache::fetchPageRow
28239673250.00% 4793.465 4346 - Wikimedia\Rdbms\DBConnRef::selectRow
29238289750.00% 4765.795 4346 - Wikimedia\Rdbms\Database::selectRow
30228292750.00% 4565.855 253665 - Wikimedia\Rdbms\ResultWrapper::next
31212738050.00% 4254.761 259622 - Wikimedia\Rdbms\ResultWrapper::fetchObject
32205585753.92% 4111.715 5558 - section.query-m: SELECT tmp_id,tmp_name,tmp_display_anon,tmp_display_account,tmp_archived,tmp_category FROM `cn_templates` `templates` WHERE tmp_name = 'X'
33179576250.00% 3591.525 1 - DatabaseMessageIndex::retrieve
34179140200.00% 3582.804 269538 - Wikimedia\Rdbms\DatabaseMysqlBase::fetchObject
35177594876.29% 3551.898 4279 - section.query-m: SELECT page_id,page_len,page_is_redirect,page_latest,page_restrictions,page_content_model,page_lang FROM `page` WHERE page_namespace = N AND page_title = 'X' LIMIT N
3691247950.00% 1824.959 8 - Banner::{closure}
3791246600.00% 1824.932 8 - Banner::extractMessageFields
3881693450.00% 1633.869 8 - Parser::parse
3968743600.00% 1374.872 15934 - Wikimedia\Rdbms\LoadBalancer::getConnection
4062811800.00% 1256.236 15794 - Wikimedia\Rdbms\Database::selectSQLText
4156427850.00% 1128.557 8 - Parser::internalParse
4249554400.00% 991.088 327531 - Wikimedia\AtEase\AtEase::restoreWarnings
4345141500.00% 902.830 15937 - Wikimedia\Rdbms\LoadBalancer::getServerConnection
4443446500.00% 868.930 556 - Parser::replaceVariables
4542538650.00% 850.773 9902 - wfGetDB
4641849150.00% 836.983 5791 - TranslateUtils::getSafeReadDB
4741845550.00% 836.911 655062 - Wikimedia\AtEase\AtEase::suppressWarnings
4841435200.00% 828.704 194 - PPFrame_Hash::expand
4940456800.00% 809.136 93 - Parser::braceSubstitution
5037631400.00% 752.628 9902 - Wikimedia\Rdbms\LoadBalancer::getMaintenanceConnectionRef
5137201150.00% 744.023 259549 - Wikimedia\Rdbms\ResultWrapper::valid
5235745850.00% 714.917 17464 - MessageGroups::getGroups
5334591850.00% 691.837 17464 - MessageGroups::init
5430317500.00% 606.350 1 - TranslatablePageMessageGroupStore::getGroups
5530067650.00% 601.353 1 - TranslatablePageMessageGroupStore::initGroupsFromTitle
5628678900.00% 573.578 15794 - Wikimedia\Rdbms\Database::tableNamesWithIndexClauseOrJOIN
5728502250.00% 570.045 77 - MessageCache::{closure}
5827062100.00% 541.242 212 - WANObjectCache::getWithSetCallback@1
5926960000.00% 539.200 212 - WANObjectCache::fetchOrRegenerate@1
6026420550.00% 528.411 513214 - Wikimedia\Rdbms\ResultWrapper::current
6126165650.00% 523.313 5566 - CNDatabase::getDb
6225459200.00% 509.184 16052 - Wikimedia\Rdbms\Database::tableNameWithAlias
6324404650.00% 488.093 269538 - Wikimedia\Rdbms\DatabaseMysqli::mysqlFetchObject
6424350800.00% 487.016 5856 - Title::newFromText
6524028400.00% 480.568 8 - Parser::internalParseHalfParsed
6623669300.00% 473.386 5856 - Title::newFromTextThrow
6723535900.00% 470.718 5858 - BagOStuff::getWithSetCallback
6823007350.00% 460.147 16052 - Wikimedia\Rdbms\Database::tableName
6921195950.00% 423.919 15887 - MWLBFactory::{closure}
7020559000.00% 411.180 15937 - Wikimedia\Rdbms\LoadBalancer::getLocalConnection
7118538400.00% 370.768 15936 - SectionProfileCallback::__destruct
7218098000.00% 361.960 8 - MWTidy::tidy
7318079750.00% 361.595 8 - MediaWiki\Tidy\RemexDriver::tidy
7418059300.00% 361.186 49 - Parser::getTemplateDom
7517936600.00% 358.732 184 - MediaWiki\Revision\RevisionStore::MediaWiki\Revision\{closure}
7617833650.00% 356.673 15887 - ProfilerXhprof::scopedProfileIn
7717636850.00% 352.737 131 - Parser::callParserFunction
7817616000.00% 352.320 8 - RemexHtml\Tokenizer\Tokenizer::execute
7917445900.00% 348.918 182 - AggregateMessageGroup::getGroups
8017225850.00% 344.517 81 - CoreParserFunctions::intFunction
8117189000.00% 343.780 8 - RemexHtml\Tokenizer\Tokenizer::executeInternal
8217154950.00% 343.099 8 - RemexHtml\Tokenizer\Tokenizer::dataState
8317099400.00% 341.988 82 - Message::toString
8417097000.00% 341.940 81 - Message::plain
8517067600.00% 341.352 82 - Message::fetchMessage
8617016800.00% 340.336 82 - MessageCache::get
8716765950.00% 335.319 82 - MessageCache::getMessageFromFallbackChain
8816756900.00% 335.138 82 - MessageCache::getMessageForLang
8916712000.00% 334.240 82 - MessageCache::getMsgFromNamespace
9016670400.00% 333.408 15936 - SectionProfiler::profileOutInternal
9116494850.00% 329.897 5856 - Title::secureAndSplit
9216165600.00% 323.312 26126 - Wikimedia\Rdbms\DatabaseMysqlBase::numRows
9315921750.00% 318.435 63 - MessageCache::loadCachedMessagePageEntry
9415921000.00% 318.420 15936 - SectionProfiler::scopedProfileIn
9515801000.00% 316.020 49 - Parser::fetchTemplateAndTitle
9615719000.00% 314.380 49 - Parser::statelessFetchTemplate
9714860650.00% 297.213 301536 - Wikimedia\Rdbms\ResultWrapper::unwrap
9814726800.00% 294.536 285433 - Wikimedia\Rdbms\DatabaseMysqli::lastErrno
9914637850.00% 292.757 63 - MediaWiki\Revision\RevisionStore::getKnownCurrentRevision
10014256450.00% 285.129 81 - MediaWiki\Revision\RevisionRecord::getContent
10113810900.00% 276.218 6435 - Hooks::run
10213785450.00% 275.709 5798 - Wikimedia\Rdbms\LoadBalancer::isMasterConnectionReadOnly
10313780150.00% 275.603 15937 - Wikimedia\Rdbms\DatabaseDomain::isCompatible
10412551500.00% 251.030 63744 - SectionProfiler::getTime
10511633550.00% 232.671 6443 - MediaWiki\HookContainer\HookContainer::run
10611459150.00% 229.183 1 - WorkflowStatesMessageGroup::getDefinitions
10711291000.00% 225.820 223822 - TranslateUtils::normaliseKey
10811240650.00% 224.813 120704 - TPSection::getTextWithVariables
10910962850.00% 219.257 271378 - Wikimedia\Rdbms\ResultWrapper::getDB
11010961550.00% 219.231 15887 - Wikimedia\Rdbms\DatabaseMysqlBase::lastError
11110812250.00% 216.245 5858 - MediaWikiTitleCodec::splitTitleString
11210166950.00% 203.339 43 - WANObjectCache::getWithSetCallback@2
11310137350.00% 202.747 43 - WANObjectCache::fetchOrRegenerate@2
11410069700.00% 201.394 16089 - Wikimedia\Rdbms\DatabaseDomain::newFromId
11510014600.00% 200.292 16052 - Wikimedia\Rdbms\Database::qualifiedTableComponents
1169771250.00% 195.425 7265 - WANObjectCache::worthRefreshPopular
1179668750.00% 193.375 5844 - LinkCache::addGoodLinkObjFromRow
1189499450.00% 189.989 16125 - Wikimedia\Rdbms\Database::makeList
1199167150.00% 183.343 15936 - SectionProfiler::profileInInternal
1209068000.00% 181.360 11871 - MediaWikiTitleCodec::getPrefixedDBkey
1218959250.00% 179.185 15777 - Wikimedia\Rdbms\Database::fieldNamesWithAlias
1228898293.97% 177.966 1 - section.query-m: SELECT * FROM `translate_messageindex`
1238698800.00% 173.976 456 - AutoLoader::autoload
1248173400.00% 163.468 5791 - MessageGroupOld::getMessageGroupStates
1258170350.00% 163.407 49 - Parser::fetchCurrentRevisionOfTitle
1268110700.00% 162.214 49 - Parser::fetchCurrentRevisionRecordOfTitle
1277949950.00% 158.999 49 - Parser::statelessFetchRevisionRecord
1287817900.00% 156.358 5884 - Wikimedia\Rdbms\ResultWrapper::rewind
1297792850.00% 155.857 182 - MessageGroups::expandWildcards
1307694400.00% 153.888 6256 - MediaWiki\HookContainer\HookContainer::callLegacyHook
1317639200.00% 152.784 12295 - Title::prefix
1327628300.00% 152.566 15887 - Wikimedia\Rdbms\GeneralizedSql::stringify
1337579150.00% 151.583 5790 - WikiPageMessageGroup::makeGroupKeys
1347495900.00% 149.918 81 - MediaWiki\Revision\SlotRecord::getContent
1357437850.00% 148.757 81 - MediaWiki\Revision\RevisionStore::loadSlotContent
1367418900.00% 148.378 18773 - MediumSpecificBagOStuff::resolveSegments
1377162000.00% 143.240 71 - MediaWiki\Storage\SqlBlobStore::getBlob
1387154950.00% 143.099 49 - Revision::getContent
1397001700.00% 140.034 131620 - MessageIndex::unserialize
1406913150.00% 138.263 432 - PPFrame_Hash::expand@1
1416891750.00% 137.835 26204 - Wikimedia\Rdbms\LoadBalancer::resolveDomainID
1426830550.00% 136.611 53745 - Wikimedia\Services\ServiceContainer::getService
1436825900.00% 136.518 5878 - MediumSpecificBagOStuff::get
1446708800.00% 134.176 81 - MediaWiki\Revision\RevisionRecord::getSlot
1456671850.00% 133.437 81 - MediaWiki\Revision\RevisionSlots::getSlot
1466661700.00% 133.234 81 - MediaWiki\Revision\RevisionSlots::getSlots
1476585100.00% 131.702 7447 - Monolog\Logger::debug
1486547650.00% 130.953 71 - MediaWiki\Revision\RevisionStore::loadSlotRecords
1496319500.00% 126.390 5558 - Wikimedia\Rdbms\DBConnRef::fetchObject
1506272650.00% 125.453 41889 - Wikimedia\Rdbms\DatabaseMysqli::getBindingHandle
1516241050.00% 124.821 20288 - Wikimedia\Rdbms\Database::addQuotes
1526110450.00% 122.209 39 - PPTemplateFrame_Hash::cachedExpand
1536038250.00% 120.765 4258 - RemexHtml\Tokenizer\Tokenizer::emitDataRange
1545973450.00% 119.469 7509 - Monolog\Logger::addRecord
1555859650.00% 117.193 15887 - Wikimedia\Rdbms\Database::affectedRows
1565615650.00% 112.313 17456 - MessageGroups::getGroup
1575584250.00% 111.685 7246 - WANObjectCache::makeKey
1585568700.00% 111.374 3621 - RemexHtml\TreeBuilder\Dispatcher::characters
1595550250.00% 111.005 1 - MessageIndex::getArrayDiff
1605490300.00% 109.806 8 - Banner::getBodyContent
1615488400.00% 109.768 8 - Banner::populateBodyContent
1625454450.00% 109.089 4827 - Title::getNsText
1635447700.00% 108.954 15934 - Wikimedia\Rdbms\LoadBalancer::getConnectionIndex
1645393100.00% 107.862 11809 - MapCacheLRU::set
1655363800.00% 107.276 6456 - Title::getPrefixedDBkey
1665166500.00% 103.330 15887 - Wikimedia\Rdbms\GeneralizedSql::generalizeSQL
1675121100.00% 102.422 15887 - Wikimedia\Rdbms\Database::isWriteQuery
1685117650.00% 102.353 15934 - Wikimedia\Rdbms\LoadBalancer::getReaderIndex
1695103650.00% 102.073 15794 - Wikimedia\Rdbms\Database::makeSelectOptions
1704980750.00% 99.615 8731 - MessageGroups::getPriority
1714918950.00% 98.379 25 - MediaWiki\Storage\SqlBlobStore::MediaWiki\Storage\{closure}
1724900350.00% 98.007 8 - BlockLevelPass::doBlockLevels
1734897750.00% 97.955 8 - BlockLevelPass::execute
1744812100.00% 96.242 9238 - MediaWikiTitleCodec::getNamespaceName
1754799600.00% 95.992 2139 - RemexHtml\TreeBuilder\Dispatcher::startTag
1764713900.00% 94.278 15887 - Wikimedia\Rdbms\Database::assertQueryIsCurrentlyAllowed
1774707200.00% 94.144 97 - WANObjectCache::set
1784623750.00% 92.475 332 - Parser::preprocessToDom
1794622793.20% 92.456 71 - section.query-m: SELECT slot_revision_id,slot_content_id,slot_origin,slot_role_id,content_size,content_sha1,content_address,content_model FROM `slots` JOIN `content` ON ((slot_content_id = content_id)) WHERE slot_revision_id = 'X'
1804612750.00% 92.255 37 - LinkCache::{closure}
1814602550.00% 92.051 5884 - Wikimedia\Rdbms\ResultWrapper::numRows
1824556350.00% 91.127 332 - Preprocessor_Hash::preprocessToObj
1834542050.00% 90.841 7322 - MediumSpecificBagOStuff::makeKey
1844528500.00% 90.570 3529 - RemexHtml\TreeBuilder\InBody::characters
1854471500.00% 89.430 8 - Parser::handleMagicLinks
1864413050.00% 88.261 10115 - Wikimedia\Rdbms\DatabaseMysqlBase::strencode
1874326450.00% 86.529 16052 - Wikimedia\Rdbms\Database::relationSchemaQualifier
1884237750.00% 84.755 11879 - MediaWikiTitleCodec::formatTitle
1894235100.00% 84.702 5790 - TranslatablePage::getMessageGroupIdFromTitle
1904217200.00% 84.344 35 - Parser::braceSubstitution@1
1914206950.00% 84.139 5797 - Wikimedia\Rdbms\LoadBalancer::getLaggedReplicaMode
1924180650.00% 83.613 2111 - RemexHtml\TreeBuilder\Dispatcher::endTag
1934176400.00% 83.528 15887 - Wikimedia\Rdbms\DatabaseMysqli::fetchAffectedRowCount
1944145700.00% 82.914 10143 - Wikimedia\Rdbms\DBConnRef::__destruct
1954111800.00% 82.236 705 - Parser::magicLinkCallback
1964072200.00% 81.444 43 - Parser::makeFreeExternalLink
1974060350.00% 81.207 2067 - RemexHtml\TreeBuilder\InBody::startTag
1984059650.00% 81.193 3529 - RemexHtml\TreeBuilder\InBody::RemexHtml\TreeBuilder\{closure}
1993955250.00% 79.105 30 - MediaWiki\Revision\RevisionStore::fetchRevisionRowFromConds
2003850000.00% 77.000 73 - Wikimedia\Rdbms\Database::getCacheSetOptions
2013812800.00% 76.256 15936 - SectionProfiler::updateEntry
2023783950.00% 75.679 9 - MediaWiki\Storage\SqlBlobStore::fetchBlobs
2033774850.00% 75.497 73 - Wikimedia\Rdbms\DBConnRef::getSessionLagStatus
2043765950.00% 75.319 76433 - Wikimedia\Rdbms\Database::fieldNameWithAlias
2053762750.00% 75.255 21850 - Wikimedia\Rdbms\Database::dbSchema
2063758050.00% 75.161 15887 - Wikimedia\Rdbms\Database::resultObject
2073751450.00% 75.029 73 - Wikimedia\Rdbms\Database::getSessionLagStatus
2083747250.00% 74.945 5839 - Title::getPrefixedText
2093724350.00% 74.487 74 - Wikimedia\Rdbms\DatabaseMysqlBase::getApproximateLagStatus
2103707050.00% 74.141 74 - Wikimedia\Rdbms\Database::getApproximateLagStatus
2113692700.00% 73.854 73 - Wikimedia\Rdbms\Database::getLag
2123691250.00% 73.825 15794 - Wikimedia\Rdbms\Database::beginIfImplied
2133683800.00% 73.676 73 - Wikimedia\Rdbms\DatabaseMysqlBase::doGetLag
2143664900.00% 73.298 73 - Wikimedia\Rdbms\DatabaseMysqlBase::getLagFromPtHeartbeat
2153642250.00% 72.845 43 - Linker::makeExternalLink
2163618900.00% 72.378 7408 - MemcachedBagOStuff::makeKeyInternal
2173562200.00% 71.244 73 - Wikimedia\Rdbms\DatabaseMysqlBase::getHeartbeatData
2183506600.00% 70.132 2033 - RemexHtml\TreeBuilder\InBody::endTag
2193480600.00% 69.612 21486 - MediaWiki\MediaWikiServices::getDBLoadBalancer
2203467500.00% 69.350 10115 - Wikimedia\Rdbms\DatabaseMysqli::mysqlRealEscapeString
2213409200.00% 68.184 332 - Preprocessor::cacheGetTree
2223380200.00% 67.604 9902 - wfGetLB
2233377100.00% 67.542 43 - MediaWiki\SecureLinkFixer\Hooks::onLinkerMakeExternalLink
2243353700.00% 67.074 16 - Wikimedia\Services\ServiceContainer::createService
2253347950.00% 66.959 2 - MediaWiki\SecureLinkFixer\HSTSPreloadLookup::getInstance
2263284800.00% 65.696 90 - MediumSpecificBagOStuff::add
2273261350.00% 65.227 8 - Parser::handleAllQuotes
2283243900.00% 64.878 85 - MemcachedPeclBagOStuff::doAdd
2293238642.22% 64.773 31 - section.query-m: SELECT rev_id,rev_page,rev_timestamp,rev_minor_edit,rev_deleted,rev_len,rev_parent_id,rev_sha1,comment_rev_comment.comment_text AS `rev_comment_text`,comment_rev_comment.comment_data AS `rev_comment_data`,comment_rev_comment.comment_id AS `rev_comment_cid
2303178850.00% 63.577 2146 - RemexHtml\TreeBuilder\TreeBuilder::insertElement
2313044150.00% 60.883 8 - MediaWiki\Revision\RevisionStore::getRevisionByTitle
2323032300.00% 60.646 53725 - MediaWiki\MediaWikiServices::getInstance
2333031100.00% 60.622 3621 - RemexHtml\TreeBuilder\TreeBuilder::insertCharacters
2343005200.00% 60.104 10146 - Wikimedia\Rdbms\LoadBalancer::reuseConnection
2352989100.00% 59.782 8 - MediaWiki\Revision\RevisionStore::loadRevisionFromConds
2362959050.00% 59.181 2146 - RemexHtml\TreeBuilder\TreeBuilder::insertForeign
2372947900.00% 58.958 63548 - Wikimedia\Rdbms\Database::fieldHasBit
2382918700.00% 58.374 19896 - ExplodeIterator::next
2392914000.00% 58.280 68368 - Wikimedia\Rdbms\DatabaseDomain::getId
2402890150.00% 57.803 18 - MediaWiki\Storage\SqlBlobStore::expandBlob
2412889000.00% 57.780 15936 - SectionProfileCallback::__construct
2422857160.57% 57.143 73 - section.query-m: SELECT ts FROM heartbeat.heartbeat WHERE shard = 'X' ORDER BY ts DESC LIMIT N
2432847000.00% 56.940 1 - MessageIndex::clearMessageGroupStats
2442771900.00% 55.438 69646 - Wikimedia\Rdbms\LoadBalancer::getWriterIndex
2452768850.33% 55.377 1 - section.query-m: SELECT tgr_group,tgr_state FROM `translate_groupreviews` WHERE tgr_lang = 'X'
2462756850.00% 55.137 1 - JobQueueGroup::push
2472708950.00% 54.179 5858 - NamespaceInfo::isCapitalized
2482707900.00% 54.158 81 - MediaWiki\Revision\RevisionStore::newRevisionFromRowAndSlots
2492689400.00% 53.788 1865 - RemexHtml\TreeBuilder\TreeBuilder::generateImpliedEndTagsAndPop
2502687050.00% 53.741 8 - Parser::handleTables
2512678700.00% 53.574 5810 - HashBagOStuff::doGet
2522654650.00% 53.093 8 - Sanitizer::removeHTMLtags
2532648550.00% 52.971 7403 - WANObjectCache::unwrap
2542628350.00% 52.567 18773 - SerializedValueContainer::isUnified
2552615050.00% 52.301 7403 - WANObjectCache::processCheckKeys
2562610700.00% 52.214 71 - MediaWiki\Revision\RevisionStore::newRevisionFromRow
2572603400.00% 52.068 10160 - LinkCache::isCacheable
2582597450.00% 51.949 31774 - Wikimedia\Rdbms\DatabaseMysqli::mysqlError
2592585750.00% 51.715 15887 - Wikimedia\Rdbms\Database::getQueryVerb
2602565450.00% 51.309 1 - JobQueue::push
2612565300.00% 51.306 1 - JobQueue::batchPush
2622564400.00% 51.288 1 - MediaWiki\Extension\EventBus\Adapters\JobQueue\JobQueueEventBus::doBatchPush
2632501900.00% 50.038 47813 - Wikimedia\Rdbms\Database::trxLevel
2642474500.00% 49.490 30040 - MapCacheLRU::has
2652436400.00% 48.728 15940 - Wikimedia\Rdbms\DatabaseDomain::decode
2662421350.00% 48.427 7411 - Monolog\Handler\GroupHandler::isHandling
2672386650.00% 47.733 15887 - Wikimedia\Rdbms\TransactionProfiler::recordQueryCompletion
2682371100.00% 47.422 7 - WANObjectCache::getWithSetCallback@3
2692369550.00% 47.391 1922 - RemexHtml\TreeBuilder\TreeBuilder::popAllUpToName
2702361750.00% 47.235 7 - WANObjectCache::fetchOrRegenerate@3
2712337250.00% 46.745 16030 - Wikimedia\Rdbms\Database::getDomainID
2722335700.00% 46.714 41889 - Wikimedia\Rdbms\Database::getBindingHandle
2732316550.00% 46.331 1 - ExtensionRegistry::loadFromQueue
2742284850.00% 45.697 26204 - Wikimedia\Rdbms\LoadBalancer::resolveDomainInstance
2752266950.00% 45.339 15938 - Wikimedia\Rdbms\DatabaseDomain::equals
2762254950.00% 45.099 15889 - Wikimedia\Rdbms\Database::assertHasConnectionHandle
2772236450.00% 44.729 3621 - MediaWiki\Tidy\RemexCompatMunger::characters
2782210400.00% 44.208 15890 - Wikimedia\Rdbms\Database::writesOrCallbacksPending
2792208550.00% 44.171 18773 - SerializedValueContainer::isSegmented
2802208150.00% 44.163 426 - PPNode_Hash_Tree::splitRawTemplate
2812171400.00% 43.428 16052 - Wikimedia\Rdbms\Database::tablePrefix
2822118350.00% 42.367 798 - PPNode_Hash_Tree::__construct
2832093800.00% 41.876 21926 - Wikimedia\Rdbms\DatabaseMysqlBase::addIdentifierQuotes
2842029450.00% 40.589 12119 - MapCacheLRU::get
2852027700.00% 40.554 32104 - Wikimedia\Rdbms\DatabaseMysqlBase::isQuotedIdentifier
2861999750.00% 39.995 9238 - Language::needsGenderDistinction
2871960800.00% 39.216 15934 - Wikimedia\Rdbms\LoadBalancer::sanitizeConnectionFlags
2881954000.00% 39.080 5791 - TranslateUtils::shouldReadFromMaster
2891913150.00% 38.263 52518 - StringMatcher::match
2901877000.00% 37.540 5966 - MediumSpecificBagOStuff::makeGlobalKey
2911875400.00% 37.508 4827 - Title::getTitleFormatter
2921840100.00% 36.802 8 - ExternalStoreAccess::fetchFromURL
2931799050.00% 35.981 2153 - Language::getNsIndex
2941786250.00% 35.725 2 - MultiHttpClient::run
2951785850.00% 35.717 2 - MultiHttpClient::runMulti
2961783400.00% 35.668 2 - MultiHttpClient::runMultiCurl
2971780600.00% 35.612 8 - ExternalStoreDB::fetchFromURL
2981778000.00% 35.560 8 - ExternalStoreDB::fetchBlob
2991743450.00% 34.869 5872 - Wikimedia\Rdbms\DatabaseMysqlBase::dataSeek
3001738429.07% 34.769 37 - section.query-m: SELECT page_id,page_len,page_is_redirect,page_latest,page_restrictions,page_content_model,page_lang,page_touched FROM `page` WHERE page_namespace = N AND page_title = 'X' LIMIT N
3011725000.00% 34.500 5858 - TitleValue::assertValidSpec
3021723700.00% 34.474 2119 - MediaWiki\Tidy\RemexCompatMunger::endTag
3031715450.00% 34.309 31702 - Wikimedia\Rdbms\Database::getFlag
3041704100.00% 34.082 15081 - WANObjectCache::getCurrentTime
3051638750.00% 32.775 1 - MediaWiki\Extension\EventBus\EventBus::send
3061636650.00% 32.733 241 - Wikimedia\Rdbms\LoadBalancer::getConnectionRef
3071621700.00% 32.434 37546 - SerializedValueContainer::instanceOf
3081610850.00% 32.217 5650 - WANObjectCache::parsePurgeValue
3091598700.00% 31.974 31844 - Wikimedia\Rdbms\Database::isOpen
3101576400.00% 31.528 2154 - MediaWiki\Tidy\RemexCompatMunger::insertElement
3111575200.00% 31.504 7403 - WANObjectCache::makeSisterKeys
3121568600.00% 31.372 32104 - Wikimedia\Rdbms\Database::prependDatabaseOrSchema
3131565300.00% 31.306 1 - MessageGroups::getCachedGroupDefinitions
3141564250.00% 31.285 120 - Composer\Autoload\ClassLoader::loadClass
3151563900.00% 31.278 676 - Parser::{closure}
3161542900.00% 30.858 5558 - Banner::fromName
3171542000.00% 30.840 26118 - Wikimedia\Rdbms\DatabaseMysqli::mysqlNumRows
3181527950.00% 30.559 5948 - LinkCache::getGoodLinkID
3191524950.00% 30.499 120 - Composer\Autoload\includeFile
3201501500.00% 30.030 144 - MediaWiki\Revision\RevisionStore::ensureRevisionRowMatchesTitle
3211486250.00% 29.725 13 - Wikimedia\Services\ServiceContainer::createService@1
3221483250.00% 29.665 39 - Wikimedia\Services\ServiceContainer::getService@1
3231479600.00% 29.592 10149 - Wikimedia\Rdbms\LoadBalancer::getRoleFromIndex
3241465350.00% 29.307 34273 - Title::getNamespace
3251456550.00% 29.131 5797 - Wikimedia\Rdbms\LoadBalancer::hasStreamingReplicaServers
3261436550.00% 28.731 16115 - Wikimedia\Rdbms\DatabaseDomain::__construct
3271429600.00% 28.592 8 - MediaWiki\MediaWikiServices::getParser
3281419750.00% 28.395 9238 - Language::getNsText
3291418400.00% 28.368 1 - ExtensionRegistry::readFromQueue
3301407250.00% 28.145 2119 - RemexHtml\Serializer\Serializer::endTag
3311367700.00% 27.354 3621 - RemexHtml\Serializer\Serializer::characters
3321360600.00% 27.212 28975 - Title::isExternal
3331351600.00% 27.032 12 - MediumSpecificBagOStuff::merge
3341348650.00% 26.973 12 - MediumSpecificBagOStuff::mergeViaCas
3351345450.00% 26.909 8 - ParserOptions::newFromContext
3361317800.00% 26.356 5618 - MediaWiki\MediaWikiServices::getMainWANObjectCache
3371298200.00% 25.964 18 - User::getOption
3381294550.00% 25.891 31813 - MessageGroupOld::getId
3391294300.00% 25.886 15794 - Wikimedia\Rdbms\Database::selectOptionsIncludeLocking
3401294050.00% 25.881 15934 - Wikimedia\Rdbms\LoadBalancer::resolveGroups
3411293050.00% 25.861 20292 - Wikimedia\Rdbms\Database::getLBInfo
3421276350.00% 25.527 9 - RequestContext::getLanguage
3431256800.00% 25.136 26 - MediaWiki\User\UserOptionsManager::getOption
3441249300.00% 24.986 26 - MediaWiki\User\UserOptionsManager::loadUserOptions
3451235850.00% 24.717 5948 - LinkCache::isBadLink
3461196000.00% 23.920 15887 - Wikimedia\Rdbms\Database::registerTempWrites
3471193650.00% 23.873 1 - TranslateUtils::getContents
3481187450.00% 23.749 1 - MessageGroups::getGroupLoaders
3491133450.00% 22.669 15879 - Wikimedia\Rdbms\ResultWrapper::__construct
3501131100.00% 22.622 6 - Wikimedia\Rdbms\LoadBalancer::reallyOpenConnection
3511129350.00% 22.587 7517 - MemcachedPeclBagOStuff::checkResult
3521107900.00% 22.158 2123 - RemexHtml\Serializer\Serializer::serializeNode
3531091600.00% 21.832 6440 - MediaWiki\MediaWikiServices::getLinkCache
3541081750.00% 21.635 716 - RemexHtml\TreeBuilder\InPre::characters
3551067850.00% 21.357 5801 - HashBagOStuff::expire
3561066950.00% 21.339 13081 - MemcachedBagOStuff::validateKeyEncoding
3571055850.00% 21.117 26540 - ExplodeIterator::valid
3581043600.00% 20.872 8 - Parser::startParse
3591038200.00% 20.764 5876 - wfUrlencode
3601037100.00% 20.742 8 - Parser::clearState
3611034000.00% 20.680 16006 - Wikimedia\ScopedCallback::__construct
3621028200.00% 20.564 5859 - MediaWiki\MediaWikiServices::getTitleParser
3631027600.00% 20.552 14928 - Monolog\Handler\AbstractHandler::isHandling
3641022400.00% 20.448 19920 - ExplodeIterator::refreshCurrent
365999500.00% 19.990 15891 - Profiler::instance
366997000.00% 19.940 22001 - Wikimedia\Rdbms\DatabaseDomain::getSchema
367981100.00% 19.622 1 - ParserFactory::create
368980900.00% 19.618 5880 - MediumSpecificBagOStuff::makeKeyInternal
369980700.00% 19.614 1 - Parser::__construct
370980500.00% 19.610 9 - Parser::firstCallInit
371965750.00% 19.315 1 - MediaWiki\Revision\RevisionStore::newRevisionsFromBatch
372955550.00% 19.111 4829 - MediaWiki\MediaWikiServices::getTitleFormatter
373954100.00% 19.082 13162 - WANObjectCache::makeSisterKey
374947750.00% 18.955 15794 - Wikimedia\Rdbms\Database::makeOrderBy
375939950.00% 18.799 15934 - Wikimedia\Rdbms\LoadBalancer::getExistingReaderIndex
376933200.00% 18.664 224 - MediaWiki\Revision\RevisionStore::getDBConnectionRef
377929650.00% 18.593 9097 - MessageGroupBase::getId
378923900.00% 18.478 5856 - Sanitizer::decodeCharReferencesAndNormalize
379873250.00% 17.465 6447 - MediaWiki\MediaWikiServices::getHookContainer
380871550.00% 17.431 90 - AutoLoader::autoload@1
381871400.00% 17.428 15887 - Wikimedia\Rdbms\GeneralizedSql::__construct
382863900.00% 17.278 132 - PPFrame_Hash::expand@2
383861350.00% 17.227 15937 - Wikimedia\Rdbms\LoadBalancer::enforceConnectionFlags
384853400.00% 17.068 1 - MediaWiki\Extension\EventBus\EventFactory::createJobEvent
385848100.00% 16.962 12614 - MapCacheLRU::getCurrentTime
386845600.00% 16.912 8 - BannerRenderer::__construct
387845500.00% 16.910 8 - Parser::finalizeHeadings
388843700.00% 16.874 14 - MemcachedPeclBagOStuff::doGet
389840200.00% 16.804 6447 - MediaWiki\HookContainer\HookContainer::getHandlers
390838950.00% 16.779 8 - Wikibase\Client\Hooks\ParserClearStateHookHandler::onParserClearState
391837400.00% 16.748 1 - MediaWiki\Extension\EventBus\EventFactory::createEvent
392835050.00% 16.701 8 - Wikibase\Client\WikibaseClient::getRestrictedEntityLookup
393834850.00% 16.697 15937 - Wikimedia\Rdbms\LoadBalancer::getServerCount
394831150.00% 16.623 8 - Banner::getMixins
395830050.00% 16.601 8 - Banner::populateMixinData
396824950.00% 16.499 1 - WikiMap::getWiki
397824800.00% 16.496 1 - WikiMap::getWikiReferenceFromWgConf
398819150.00% 16.383 15794 - Wikimedia\Rdbms\Database::makeGroupByWithHaving
399817800.00% 16.356 1 - Wikibase\Client\WikibaseClient::getEntityLookup
400817600.00% 16.352 5858 - NamespaceInfo::getSubject
401814600.00% 16.292 1 - SiteConfiguration::loadFullData
402814350.00% 16.287 1 - wmfLoadInitialiseSettings
403810450.00% 16.209 7350 - WANObjectCache::determineKeyClassForStats
404807900.00% 16.158 19896 - ExplodeIterator::current
405792900.00% 15.858 1 - ExtensionRegistry::exportExtractedData
406790200.00% 15.804 1 - MediaWiki\Revision\RevisionStore::getSlotRowsForBatch
407785550.00% 15.711 5804 - Wikimedia\Rdbms\Database::getDBname
408772850.00% 15.457 2148 - MediaWiki\Tidy\RemexCompatFormatter::element
409771450.00% 15.429 17973 - Title::getDBkey
410770450.00% 15.409 13014 - MediaWiki\Config\ServiceOptions::get
411764150.00% 15.283 9261 - LocalisationCache::getItem
412760750.00% 15.215 251 - RemexHtml\Tokenizer\Tokenizer::handleAttribsAndClose
413747350.00% 14.947 17456 - MessageGroups::normalizeId
414742350.00% 14.847 6 - PPTemplateFrame_Hash::cachedExpand@1
415741300.00% 14.826 7447 - WANObjectCache::isValid
416735100.00% 14.702 15937 - Wikimedia\Rdbms\DatabaseDomain::isUnspecified
417735050.00% 14.701 8 - ExternalStoreDB::getReplica
418726900.00% 14.538 5558 - Banner::isValidBannerName
419715950.00% 14.319 10149 - Wikimedia\Rdbms\DBConnRef::__construct
420709300.00% 14.186 8 - Sanitizer::normalizeCharReferences
421709150.00% 14.183 3 - Parser::braceSubstitution@2
422707950.00% 14.159 17 - MediaWiki\User\DefaultOptionsLookup::getDefaultOptions
423700400.00% 14.008 8 - Wikimedia\Rdbms\DBConnRef::selectField
424697000.00% 13.940 8 - Wikimedia\Rdbms\Database::selectField
425695300.00% 13.906 2156 - RemexHtml\Serializer\Serializer::insertElement
426683000.00% 13.660 3 - MessageGroupWANCache::getValue
427671000.00% 13.420 16204 - Wikimedia\Rdbms\DatabaseDomain::getTablePrefix
428658738.61% 13.175 8 - section.query-m: SELECT mixin_name FROM `cn_template_mixins` WHERE tmp_id = N
429654450.00% 13.089 7509 - Monolog\Logger::getLevelName
430653750.00% 13.075 128 - MediaWiki\Languages\LanguageFactory::getLanguage
431653500.00% 13.070 68 - MediaWiki\MediaWikiServices::getContentLanguage
432647750.00% 12.955 12 - MediumSpecificBagOStuff::cas
433641600.00% 12.832 12 - MemcachedPeclBagOStuff::doCas
434635750.00% 12.715 11580 - WikiPageMessageGroup::getTitle
435623750.00% 12.475 6 - Wikimedia\Rdbms\Database::initConnection
436622250.00% 12.445 6 - Wikimedia\Rdbms\Database::doInitConnection
437621350.00% 12.427 6 - Wikimedia\Rdbms\DatabaseMysqlBase::open
438620500.00% 12.410 1 - MediaWiki\Storage\SqlBlobStore::getBlobBatch
439610100.00% 12.202 81 - MediaWiki\Revision\RevisionStore::constructSlotRecords
440609750.00% 12.195 17466 - MessageGroups::singleton
441605400.00% 12.108 548 - Sanitizer::fixTagAttributes
442600250.00% 12.005 6260 - MediaWiki\HookContainer\HookContainer::normalizeHandler
443600004.20% 12.000 8 - section.query-m: SELECT blob_text FROM `blobs_cluster2N` WHERE blob_id = 'X' LIMIT N
444595050.00% 11.901 12413 - Wikimedia\Assert\Assert::parameter
445592700.00% 11.854 5872 - Wikimedia\Rdbms\DatabaseMysqli::mysqlDataSeek
446580100.00% 11.602 7350 - WANObjectCache::resolveCTL
447574200.00% 11.484 5859 - MediaWikiTitleCodec::getTitleInvalidRegex
448570550.00% 11.411 8786 - NamespaceInfo::isContent
449566450.00% 11.329 82 - MessageCache::load
450563950.00% 11.279 116 - Parser::getTargetLanguageConverter
451563950.00% 11.279 23 - Wikimedia\ObjectFactory::getObjectFromSpec
452558450.00% 11.169 127 - Parser::getTargetLanguage
453557400.00% 11.148 332 - PPFrame_Hash::__construct
454554950.00% 11.099 29 - Wikimedia\Services\ServiceContainer::getService@2
455552250.00% 11.045 13 - Wikimedia\Services\ServiceContainer::createService@2
456539950.00% 10.799 12026 - Title::getInterwiki
457537950.00% 10.759 2567 - Language::lc
458535400.00% 10.708 26 - MediaWiki\User\UserOptionsManager::getCacheKey
459534800.00% 10.696 2127 - RemexHtml\TreeBuilder\CachingStack::pop
460529750.00% 10.595 2953 - Sanitizer::normalizeCharReferencesCallback
461527250.00% 10.545 295 - Parser::argSubstitution
462525050.00% 10.501 3719 - RemexHtml\TreeBuilder\TreeBuilder::reconstructAFE
463524350.00% 10.487 28 - User::isRegistered
464521000.00% 10.420 28 - User::getId
465518050.00% 10.361 27 - User::load
466516250.00% 10.325 2127 - RemexHtml\TreeBuilder\CachingStack::push
467510050.00% 10.201 2 - WebRequest::getSession
468509950.00% 10.199 10 - Wikimedia\Rdbms\LoadBalancer::Wikimedia\Rdbms\{closure}
469508250.00% 10.165 10 - Wikimedia\Rdbms\DatabaseMysqlBase::serverIsReadOnly
470492600.00% 9.852 9240 - Language::getNamespaces
471490050.00% 9.801 120 - ExtensionProcessor::extractInfo
472488650.00% 9.773 8522 - Parser::doQuotes
473488500.00% 9.770 3 - Wikimedia\Rdbms\LoadBalancer::pickReaderIndex
474486900.00% 9.738 1 - User::loadFromSession
475484150.00% 9.683 1 - MediaWiki\Session\SessionManager::getSessionForRequest
476481500.00% 9.630 5558 - Banner::setBasicDataDirty
477472550.00% 9.451 11 - Monolog\Handler\WhatFailureGroupHandler::handle
478469500.00% 9.390 130 - PPFrame_Hash::newChild
479468650.00% 9.373 22 - Monolog\Handler\AbstractProcessingHandler::handle
480467650.00% 9.353 81 - MediaWiki\Revision\RevisionStoreRecord::__construct
481463450.00% 9.269 20 - MediaWiki\MediaWikiServices::getDBLoadBalancerFactory
482462550.00% 9.251 5804 - Wikimedia\Rdbms\Database::setLBInfo
483454700.00% 9.094 127 - Title::getPageLanguage
484453600.00% 9.072 7871 - RemexHtml\TreeBuilder\Dispatcher::dispatcherCurrentNode
485450150.00% 9.003 1 - AggregateMessageGroupLoader::getGroups
486445200.00% 8.904 1 - MediaWiki\MediaWikiServices::getParserFactory
487439350.00% 8.787 2931 - ParserOptions::getOption
488436000.00% 8.720 90 - MediaWiki\Revision\RevisionStore::getDBConnectionRefForQueryFlags
489423850.00% 8.477 4354 - Wikimedia\Rdbms\Database::limitResult
490421800.00% 8.436 8 - RemexHtml\TreeBuilder\Dispatcher::startDocument
491420700.00% 8.414 59 - Monolog\Logger::info
492420150.00% 8.403 120 - MediaWiki\MediaWikiServices::getRevisionLookup
493417300.00% 8.346 130 - PPTemplateFrame_Hash::__construct
494414788.72% 8.296 10 - section.query-m: SELECT @@GLOBAL.read_only AS Value
495414550.00% 8.291 1 - Wikibase\Client\WikibaseClient::getStore
496413600.00% 8.272 3621 - RemexHtml\Serializer\HtmlFormatter::characters
497413450.00% 8.269 8570 - MessageGroupOld::isMeta
498403050.00% 8.061 1 - Wikibase\Client\Store\Sql\DirectSqlStore::getEntityLookup
499402200.00% 8.044 5831 - BagOStuff::getCurrentTime
500400450.00% 8.009 5974 - FundraisingTranslateWorkflow\TranslateHooks::onModifyMessageGroupStates
501399150.00% 7.983 1 - GadgetHooks::userGetDefaultOptions
502398450.00% 7.969 6 - Wikimedia\Rdbms\DatabaseMysqli::mysqlConnect
503397250.00% 7.945 2 - MediaWiki\MediaWikiServices::getRevisionStore
504393652.92% 7.873 8 - section.query-m: SELECT old_id,old_text,old_flags FROM `text` WHERE old_id = N
505391950.00% 7.839 1 - Wikibase\Client\Store\Sql\DirectSqlStore::getEntityRevisionLookup
506391850.00% 7.837 1 - Wikibase\Client\Store\Sql\DirectSqlStore::newEntityRevisionLookup
507385550.00% 7.711 202 - Preprocessor_Hash::newFrame
508385000.00% 7.700 8753 - MessageGroupStates::getStates
509382650.00% 7.653 7526 - MediumSpecificBagOStuff::debug
510381650.00% 7.633 8570 - MessageGroupOld::exists
511373900.00% 7.478 1 - GadgetRepo::getStructuredList
512372300.00% 7.446 7517 - MemcachedPeclBagOStuff::acquireSyncClient
513370650.00% 7.413 6447 - MediaWiki\HookContainer\HookContainer::getLegacyHandlers
514370150.00% 7.403 1 - Wikibase\DataAccess\MultipleEntitySourceServices::getEntityRevisionLookup
515362300.00% 7.246 7265 - WANObjectCache::worthRefreshExpiring
516361700.00% 7.234 5 - Wikibase\DataAccess\SingleEntitySourceServices::getEntityRevisionLookup
517361300.00% 7.226 5856 - Title::setFragment
518358400.00% 7.168 67 - MediaWikiGadgetsDefinitionRepo::loadGadgets
519357750.00% 7.155 4316 - LinkCache::getSelectFields
520357250.00% 7.145 9461 - MessageGroupBase::getFromConf
521356400.00% 7.128 1 - MediaWikiGadgetsDefinitionRepo::getGadgetIds
522355900.00% 7.118 118 - MediaWiki\Logger\LoggerFactory::getInstance
523355200.00% 7.104 2252 - MediaWiki\MediaWikiServices::getNamespaceInfo
524353600.00% 7.072 5817 - HashBagOStuff::hasKey
525352550.00% 7.051 5767 - RemexHtml\TreeBuilder\TreeBuilder::appropriatePlace
526349450.00% 6.989 5775 - MediaWiki\Tidy\RemexCompatMunger::getParentForInsert
527341900.00% 6.838 11 - MediaWiki\Logger\Monolog\LegacyHandler::write
528338400.00% 6.768 8571 - MessageGroupOld::getNamespace
529336350.00% 6.727 1877 - RemexHtml\TreeBuilder\TreeBuilder::closePInButtonScope
530335950.00% 6.719 7120 - DBAccessObjectUtils::hasFlags
531335700.00% 6.714 1 - MessageGroups::initGroupsFromDefinitions
532333300.00% 6.666 5940 - Language::ucfirst
533333100.00% 6.662 1 - MediaWiki\Session\SessionManager::getEmptySession
534332950.00% 6.659 1 - MediaWiki\Session\SessionManager::getEmptySessionInternal
535330600.00% 6.612 7265 - WANObjectCache::isAliveOrInGracePeriod
536327050.00% 6.541 7350 - NullStatsdDataFactory::increment
537322500.00% 6.450 1930 - BlockLevelPass::closeParagraph
538318900.00% 6.378 8753 - MessageGroupStates::__construct
539318500.00% 6.370 2779 - BannerMessageGroup::getMessageGroupStates
540318200.00% 6.364 5777 - RemexHtml\Serializer\Serializer::interpretPlacement
541309900.00% 6.198 5856 - Title::getTitleCache
542306600.00% 6.132 126 - MediaWiki\Logger\MonologSpi::getLogger
543305500.00% 6.110 6100 - NamespaceInfo::isTalk
544302550.00% 6.051 6452 - ExtensionRegistry::getAttribute
545300150.00% 6.003 8 - ParserOutput::getText
546298950.00% 5.979 727 - Sanitizer::decodeTagAttributes
547296750.00% 5.935 1 - RequestContext::getOutput
548295950.00% 5.919 63 - Title::getLatestRevID
549293600.00% 5.872 5878 - MediumSpecificBagOStuff::trackDuplicateKeys
550291400.00% 5.828 23 - MediaWiki\Logger\MonologSpi::createLogger
551289550.00% 5.791 6 - Wikimedia\Rdbms\LoadMonitor::getServerStates
552280350.00% 5.607 253 - RemexHtml\TreeBuilder\InCell::characters
553278800.00% 5.576 5790 - WikiPageMessageGroup::__construct
554278300.00% 5.566 48 - MediaWiki\Interwiki\ClassicInterwikiLookup::isValidInterwiki
555276150.00% 5.523 1 - Wikibase\ClientHooks::onParserFirstCallInit
556272700.00% 5.454 48 - MediaWiki\Interwiki\ClassicInterwikiLookup::fetch
557271400.00% 5.428 183 - MessageGroupBase::getMessageGroupStates
558271050.00% 5.421 5804 - Wikimedia\Rdbms\Database::getServer
559269000.00% 5.380 13 - LCStoreCDB::get
560268793.11% 5.376 1 - section.query-m: SELECT old_id,old_text,old_flags FROM `text` WHERE old_id IN (N,...,N)
561268400.00% 5.368 722 - GlobalVarConfig::get
562268050.00% 5.361 10 - LocalisationCache::loadItem
563264150.00% 5.283 5971 - Wikimedia\Rdbms\DatabaseDomain::getDatabase
564262300.00% 5.246 2153 - NamespaceInfo::getCanonicalIndex
565260850.00% 5.217 6447 - MediaWiki\HookContainer\DeprecatedHooks::getDeprecationInfo
566260150.00% 5.203 146 - RemexHtml\TreeBuilder\InCell::endTag
567259450.00% 5.189 1 - MediaWiki\Languages\LanguageFactory::newFromCode
568258300.00% 5.166 11 - RequestContext::getUser
569255800.00% 5.116 1 - EchoHooks::initEchoExtension
570254900.00% 5.098 179 - Sanitizer::validateTagAttributes
571253550.00% 5.071 1 - MediaWiki\MediaWikiServices::newInstance
572253400.00% 5.068 169 - LocalisationCache::getSubitem
573251900.00% 5.038 1 - Wikimedia\Services\ServiceContainer::loadWiringFiles
574250950.00% 5.019 2 - MediaWiki\Languages\LanguageNameUtils::isValidCode
575250350.00% 5.007 6032 - Title::isSpecialPage
576247500.00% 4.950 5876 - Title::__construct
577246650.00% 4.933 5566 - FauxRequest::wasPosted
578244600.00% 4.892 2567 - Language::isMultibyte
579242550.00% 4.851 548 - Sanitizer::validateTag
580240950.00% 4.819 37 - Wikimedia\Services\ServiceContainer::getService@3
581240250.00% 4.805 5 - LocalisationCache::loadSubitem
582238100.00% 4.762 10 - Wikimedia\Services\ServiceContainer::createService@3
583237300.00% 4.746 41 - MediaWiki\Revision\RevisionStoreCacheRecord::__construct
584232700.00% 4.654 123 - Wikimedia\Timestamp\ConvertibleTimestamp::convert
585232550.00% 4.651 1 - Wikibase\DataAccess\SingleEntitySourceServices::getEntityDeserializer
586230750.00% 4.615 5791 - MessageGroupOld::getWorkflowConfiguration
587227600.00% 4.552 1 - LocalisationCache::getSubitemList
588224950.00% 4.499 35 - MediaWiki\Interwiki\ClassicInterwikiLookup::getInterwikiCached
589222200.00% 4.444 4254 - RemexHtml\TreeBuilder\CachingStack::getScopeTypesToStack
590221650.00% 4.433 2 - MediaWiki\Revision\RevisionStoreFactory::getRevisionStore
591221350.00% 4.427 35 - MediaWiki\Interwiki\ClassicInterwikiLookup::getInterwikiCacheEntry
592221000.00% 4.420 108 - RemexHtml\TreeBuilder\TreeBuilder::adoptionAgency
593216400.00% 4.328 23 - MediaWiki\Logger\MonologSpi::getHandler
594212300.00% 4.246 8 - RequestContext::getSkin
595206300.00% 4.126 1626 - Sanitizer::decCharReference
596206050.00% 4.121 118 - {closure}
597205150.00% 4.103 35 - Composer\Autoload\ClassLoader::loadClass@1
598204050.00% 4.081 68 - RemexHtml\TreeBuilder\InTableText::startTag
599197650.00% 3.953 179 - Sanitizer::validateAttributes
600195750.00% 3.915 1 - Maintenance::setAgentAndTriggers
601194250.00% 3.885 1 - Wikibase\Client\WikibaseClient::getEntityNamespaceLookup
602193750.00% 3.875 35 - Composer\Autoload\includeFile@1
603193600.00% 3.872 384 - MediaWiki\MediaWikiServices::getLanguageFactory
604190350.00% 3.807 111 - RemexHtml\TreeBuilder\InCell::startTag
605189950.00% 3.799 9 - Wikibase\Client\WikibaseClient::getDefaultInstance
606189450.00% 3.789 23 - Wikimedia\ObjectFactory::expandClosures
607188650.00% 3.773 1 - Wikibase\Client\WikibaseClient::newInstance
608187850.00% 3.757 1 - Maintenance::setLBFactoryTriggers
609187250.00% 3.745 2 - Wikibase\Client\WikibaseClient::getWikibaseServices
610187050.00% 3.741 1 - Wikibase\Client\WikibaseClient::newEntitySourceWikibaseServices
611186550.00% 3.731 179 - Sanitizer::safeEncodeTagAttributes
612186450.00% 3.729 2659 - RemexHtml\TreeBuilder\CachingStack::isInButtonScope
613185600.00% 3.712 10 - Wikimedia\ObjectFactory::Wikimedia\{closure}
614185250.00% 3.705 280 - Preprocessor::cacheSetTree
615184250.00% 3.685 768 - ParserOptions::getMaxPPNodeCount
616181450.00% 3.629 13 - MediaWiki\Logger\MonologSpi::getHandler@1
617180050.00% 3.601 892 - Wikimedia\Assert\Assert::parameterType
618179500.00% 3.590 39 - wfDebug
619178450.00% 3.569 2 - MediaWiki\MediaWikiServices::getRevisionStoreFactory
620178200.00% 3.564 4 - Wikimedia\Rdbms\LBFactoryMulti::newLoadBalancer
621178000.00% 3.560 13 - Wikimedia\Rdbms\LBFactoryMulti::getMainLB
622176000.00% 3.520 2 - MediaWiki\Session\SessionManager::getSessionFromInfo
623175400.00% 3.508 3 - Wikimedia\Rdbms\LoadMonitor::scaleLoads
624175100.00% 3.502 10 - Wikimedia\ObjectFactory::getObjectFromSpec@1
625173100.00% 3.462 96 - Parser::setFunctionHook
626170800.00% 3.416 2 - Wikimedia\Rdbms\LBFactoryMulti::newMainLB
627170250.00% 3.405 1 - Wikibase\Client\WikibaseClient::getEntityChangeFactory
628169950.00% 3.399 4 - WANObjectCache::getWithSetCallback@4
629169700.00% 3.394 109 - MediaWiki\Logger\Monolog\WikiProcessor::__invoke
630169050.00% 3.381 4 - WANObjectCache::fetchOrRegenerate@4
631168850.00% 3.377 97 - WANObjectCache::checkAndSetCooloff
632165600.00% 3.312 124 - TextContentHandler::unserializeContent
633165350.00% 3.307 229 - MapCacheLRU::hasField
634163500.00% 3.270 3 - MediaWiki\Session\SessionInfo::__construct
635163200.00% 3.264 3 - MediaWiki\Session\SessionProvider::newSessionInfo
636162500.00% 3.250 162 - MediaWiki\Storage\NameTableStore::getName
637162150.00% 3.243 1 - MediaWiki\Session\SessionManager::generateSessionId
638161600.00% 3.232 4 - Wikimedia\ObjectFactory::createObject
639159650.00% 3.193 3719 - RemexHtml\TreeBuilder\ActiveFormattingElements::getTail
640157250.00% 3.145 123 - Wikimedia\Timestamp\ConvertibleTimestamp::__construct
641156550.00% 3.131 87 - MediumSpecificBagOStuff::set
642156250.00% 3.125 5 - CachedBagOStuff::get
643153850.00% 3.077 223 - Sanitizer::armorFrenchSpaces
644152450.00% 3.049 768 - ParserOptions::getMaxPPExpandDepth
645151500.00% 3.030 28 - Parser::setHook
646151216.98% 3.024 6 - section.query-m: SET group_concat_max_len = N, `innodb_lock_wait_timeout` = N
647151050.00% 3.021 63 - TextContent::getWikitextForTransclusion
648150800.00% 3.016 1 - MediaWiki\Session\SessionManager::getSessionInfoForRequest
649149300.00% 2.986 1 - RESTBagOStuff::doGet
650148400.00% 2.968 81 - Title::exists
651147750.00% 2.955 3 - MediaWiki\Session\SessionManager::getProviders
652146050.00% 2.921 2164 - RemexHtml\TreeBuilder\Element::__construct
653145550.00% 2.911 215 - Sanitizer::safeEncodeAttribute
654144100.00% 2.882 8 - ContentHandler::getPageLanguage
655143800.00% 2.876 159 - WANObjectCache::makeGlobalKey
656141500.00% 2.830 9 - Wikimedia\Services\ServiceContainer::{closure}
657140300.00% 2.806 826 - GlobalVarConfig::has
658138100.00% 2.762 123 - Wikimedia\Timestamp\ConvertibleTimestamp::setTimestamp
659137850.00% 2.757 81 - CommentStore::getCommentLegacy
660137550.00% 2.751 2931 - ParserOptions::lazyLoadOption
661136550.00% 2.731 63 - TextContent::convert
662135650.00% 2.713 620 - ParserOptions::getMaxIncludeSize
663135250.00% 2.705 1 - DatabaseMessageIndex::store
664135150.00% 2.703 426 - Parser::incrementIncludeSize
665135000.00% 2.700 8 - Parser::handleDoubleUnderscore
666134850.00% 2.697 3 - Wikimedia\Rdbms\LoadBalancer::getRandomNonLagged
667130300.00% 2.606 89 - MediaWiki\Storage\SqlBlobStore::getCacheKey
668130100.00% 2.602 1 - MediaWiki\Extensions\OAuth\Frontend\UIHooks::onBeforeCreateEchoEvent
669128350.00% 2.567 81 - CommentStore::getCommentInternal
670124000.00% 2.480 144 - WikiMap::getCurrentWikiId
671123950.00% 2.479 129 - MagicWordArray::matchStartToEnd
672122300.00% 2.446 5 - ObjectCache::newFromParams
673122250.00% 2.445 550 - StripState::unstripBoth
674122000.00% 2.440 101 - RemexHtml\TreeBuilder\TreeBuilder::popAllUpToElement
675122000.00% 2.440 41 - wfTimestamp
676121900.00% 2.438 267 - RemexHtml\Tokenizer\LazyAttributes::getValues
677121300.00% 2.426 1974 - RemexHtml\TreeBuilder\TreeBuilder::generateImpliedEndTags
678121300.00% 2.426 14 - Wikimedia\Rdbms\LoadBalancer::getServerAttributes
679121000.00% 2.420 2164 - RemexHtml\Serializer\SerializerNode::__construct
680119700.00% 2.394 2 - NamespaceInfo::getCanonicalNamespaces
681118851.66% 2.377 1 - section.query-m: SELECT slot_revision_id,slot_content_id,slot_origin,slot_role_id,content_size,content_sha1,content_address,content_model FROM `slots` JOIN `content` ON ((slot_content_id = content_id)) WHERE slot_revision_id IN (N,...,N)
682118800.00% 2.376 1 - SkinFactory::makeSkin
683118050.00% 2.361 3 - Wikimedia\Rdbms\LoadBalancer::getLagTimes
684118000.00% 2.360 602 - MagicWordFactory::get
685117750.00% 2.355 14 - Wikimedia\Rdbms\Database::attributesFromType
686115550.00% 2.311 720 - MapCacheLRU::getAge
687115550.00% 2.311 3 - Wikimedia\Rdbms\LoadMonitor::getLagTimes
688115400.00% 2.308 251 - RemexHtml\Tokenizer\Tokenizer::consumeAttribs
689114900.00% 2.298 79 - LinkCache::getGoodLinkFieldObj
690114850.00% 2.297 68 - Wikimedia\ScopedCallback::__destruct
691112050.00% 2.241 2 - Wikibase\Client\WikibaseClient::{closure}
692111550.00% 2.231 1 - Wikibase\DataModel\DeserializerFactory::newItemDeserializer
693111350.00% 2.227 1 - Wikibase\Client\WikibaseClient::getEntityDiffer
694107150.00% 2.143 97 - MemcachedPeclBagOStuff::setNewPreparedValues
695106450.00% 2.129 2154 - MediaWiki\Tidy\RemexCompatMunger::trace
696106250.00% 2.125 65 - RemexHtml\TreeBuilder\TreeBuilder::anyOtherEndTag
697106050.00% 2.121 1987 - RemexHtml\Tokenizer\PlainAttributes::getValues
698105400.00% 2.108 120 - ExtensionProcessor::extractHooks
699104100.00% 2.082 2 - MemcachedPeclBagOStuff::doSet
700103000.00% 2.060 1 - ExtensionRegistry::buildVersionChecker
701103000.00% 2.060 1 - wfLogProfilingData
702102900.00% 2.058 145 - MapCacheLRU::getField
703102400.00% 2.048 86 - Parser::getExternalLinkRel
704101350.00% 2.027 162 - MediaWiki\Storage\NameTableStore::getTableFromCachesOrReplica
705100950.00% 2.019 81 - CommentStoreComment::__construct
706100750.00% 2.015 81 - MediaWiki\Revision\SlotRecord::__construct
707100500.00% 2.010 1 - Wikibase\Client\WikibaseClient::getDataValueDeserializer
70899700.00% 1.994 55 - Wikimedia\ScopedCallback::consume
70999500.00% 1.990 1 - MediaWiki\MediaWikiServices::getLocalisationCache
71099300.00% 1.986 1164 - Wikimedia\Assert\Assert::hasType
71198100.00% 1.962 224 - RemexHtml\Tokenizer\LazyAttributes::init
71297600.00% 1.952 94 - ExtensionProcessor::extractConfig2
71397000.00% 1.940 4 - MediaWiki\Session\SessionBackend::save
71496550.00% 1.931 2 - MediaWiki\Session\SessionBackend::MediaWiki\Session\{closure}
71596450.00% 1.929 1948 - RemexHtml\Tokenizer\PlainAttributes::__construct
71694550.00% 1.891 51 - RemexHtml\TreeBuilder\InRow::startTag
71793000.00% 1.860 1 - DatabaseMessageIndex::lock
71892250.00% 1.845 1938 - BlockLevelPass::hasOpenParagraph
71991850.00% 1.837 97 - MediumSpecificBagOStuff::guessSerialValueSize
72090900.00% 1.818 13 - Cdb\Reader\DBA::get
72190350.00% 1.807 515 - Sanitizer::decodeCharReferences
72289750.00% 1.795 1518 - Preprocessor_Hash::addLiteral
72389200.00% 1.784 399 - MagicWord::matchStartAndRemove
72488500.00% 1.770 63 - MediaWiki\Revision\RevisionStore::getRevisionRowCacheKey
72587850.00% 1.757 91 - MediaWiki\MediaWikiServices::getMessageCache
72686450.00% 1.729 402 - Language::getNamespaceIds
72786450.00% 1.729 81 - MediaWiki\Revision\RevisionSlots::setSlotsInternal
72886150.00% 1.723 1 - DataValues\Deserializers\DataValueDeserializer::__construct
72985950.00% 1.719 1 - DataValues\Deserializers\DataValueDeserializer::assertAreDataValueClasses
73085500.00% 1.710 49 - PPFrame_Hash::loopCheck
73185350.00% 1.707 1 - AggregateMessageGroupLoader::initGroupsFromConf
73285150.00% 1.703 83 - MessageCache::isLanguageLoaded
73385100.00% 1.702 12 - AutoLoader::autoload@2
73484950.00% 1.699 11 - MediaWiki\Logger\Monolog\LineFormatter::format
73584800.00% 1.696 6 - DataValues\Deserializers\DataValueDeserializer::isDataValueClass
73684250.00% 1.685 1 - MobileFrontendHooks::onRequestContextCreateSkin
73783500.00% 1.670 43 - Parser::getExternalLinkAttribs
73882300.00% 1.646 1 - JobQueueGroup::get
73982100.00% 1.642 1 - JobQueueGroup::factoryJobQueue
74081350.00% 1.627 1 - MediaWiki\MediaWikiServices::getMainObjectStash
74181100.00% 1.622 11 - Monolog\Formatter\LineFormatter::format
74280500.00% 1.610 534 - Parser::getPreprocessor
74380200.00% 1.604 34 - Sanitizer::checkCss
74479750.00% 1.595 8 - Parser::handleInternalLinks
74579700.00% 1.594 8 - MathHooks::onParserAfterTidy
74678600.00% 1.572 8 - Parser::resetOutput
74778500.00% 1.570 1 - CoreParserFunctions::register
74877950.00% 1.559 8 - MediaWiki\Logger\MonologSpi::getFormatter
74977250.00% 1.545 86 - wfMatchesDomainList
75076850.00% 1.537 1 - VersionChecker::__construct
75176800.00% 1.536 92 - RemexHtml\TreeBuilder\InTableText::processPendingCharacters
75276700.00% 1.534 24 - RemexHtml\TreeBuilder\InTableText::endTag
75376650.00% 1.533 47 - Language::normalize
75475750.00% 1.515 111 - Wikimedia\Assert\Assert::parameterElementType
75575450.00% 1.509 16 - Banner::getTitle
75674900.00% 1.498 51 - Html::rawElement
75774450.00% 1.489 182 - MessageGroupBase::factory
75874100.00% 1.482 8 - RemexHtml\TreeBuilder\TreeBuilder::startDocument
75973850.00% 1.477 1 - FileBasedMessageGroupLoader::getGroups
76073250.00% 1.465 8 - Parser::handleInternalLinks2
76173150.00% 1.463 108 - RemexHtml\TreeBuilder\ActiveFormattingElements::push
76272650.00% 1.453 32 - StringUtils::explode
76370050.00% 1.401 132 - MediaWiki\Content\ContentHandlerFactory::getContentHandler
76470000.00% 1.400 145 - WikiMap::getWikiIdFromDbDomain
76569300.00% 1.386 131 - MagicWordArray::matchStartAndRemove
76669100.00% 1.382 81 - MediaWiki\Revision\RevisionRecord::__construct
76768950.00% 1.379 34 - Sanitizer::normalizeCss
76868950.00% 1.379 170 - DBAccessObjectUtils::getDBOptions
76968250.00% 1.365 1 - Wikibase\DataAccess\SingleEntitySourceServices::getEntityMetaDataAccessor
77066800.00% 1.336 1674 - PPNode_Hash_Array::getLength
77166650.00% 1.333 63 - AbstractContent::convert
77266100.00% 1.322 3 - Wikibase\DataModel\DeserializerFactory::newStatementListDeserializer
77365650.00% 1.313 1627 - Sanitizer::validateCodepoint
77465550.00% 1.311 224 - RemexHtml\Tokenizer\Tokenizer::RemexHtml\Tokenizer\{closure}
77565500.00% 1.310 1 - CirrusSearch\Hooks::onMediaWikiServices
77665450.00% 1.309 909 - RemexHtml\TreeBuilder\CachingStack::isInScope
77765450.00% 1.309 1 - Wikibase\InternalSerialization\DeserializerFactory::newEntityDeserializer
77865300.00% 1.306 43 - Sanitizer::cleanUrl
77964750.00% 1.295 1 - VersionChecker::checkArray
78064700.00% 1.294 8 - ParserOptions::__construct
78164200.00% 1.284 43 - ParserOutput::addExternalLink
78263550.00% 1.271 8 - ParserOptions::initialiseFromUser
78363450.00% 1.269 135 - MediaWiki\Languages\LanguageConverterFactory::getLanguageConverter
78463350.00% 1.267 826 - GlobalVarConfig::hasWithPrefix
78563100.00% 1.262 157 - Wikimedia\IPUtils::sanitizeIP
78662450.00% 1.249 1236 - Sanitizer::normalizeEntity
78762400.00% 1.248 8 - RemexHtml\TreeBuilder\TreeBuilder::__construct
78862300.00% 1.246 120 - ExtensionRegistry::exportAutoloadClassesAndNamespaces
78962000.00% 1.240 1 - ExtensionRegistry::getCache
79061750.00% 1.235 49 - SectionProfiler::scopedProfileOut
79161650.00% 1.233 6 - Wikimedia\Rdbms\LoadBalancer::getLazyConnectionRef
79261400.00% 1.228 2 - Wikibase\Lexeme\WikibaseLexemeHooks::{closure}
79360800.00% 1.216 3 - Wikibase\DataModel\DeserializerFactory::newStatementDeserializer
79460800.00% 1.216 1 - Wikibase\InternalSerialization\LegacyDeserializerFactory::newEntityDeserializer
79560600.00% 1.212 1 - ScoreHooks::onParserFirstCallInit
79660550.00% 1.211 82 - WikimediaMessagesHooks::onMessageCacheGet
79760000.00% 1.200 1 - Wikibase\DataModel\Services\Diff\EntityDiffer::__construct
79859950.00% 1.199 32 - PPDStack::push
79959700.00% 1.194 209 - RemexHtml\TreeBuilder\Element::getNoahKey
80059200.00% 1.184 81 - User::newFromAnyId
80159200.00% 1.184 8 - Parser::handleHeadings
80258700.00% 1.174 8 - MagicWordArray::matchAndRemove
80358050.00% 1.161 51 - Html::openElement
80458050.00% 1.161 67 - MapCacheLRU::setField
80557650.00% 1.153 8 - ExternalStoreFactory::getStoreForUrl
80657400.00% 1.148 1 - MediaWiki\Extensions\ParserFunctions\Hooks::onParserFirstCallInit
80757400.00% 1.148 3 - MediaWiki\Session\SessionManager::singleton
80857200.00% 1.144 1 - OutputPage::__construct
80957050.00% 1.141 1 - MediaWiki\Session\SessionManager::__construct
81056450.00% 1.129 90 - wfParseUrl
81156250.00% 1.125 1 - MediaWiki\MediaWikiServices::getSlotRoleRegistry
81255100.00% 1.102 4 - Hooks::run@1
81355000.00% 1.100 2 - MemcachedPeclBagOStuff::__construct
81454750.00% 1.095 1124 - StripState::unstripType
81554400.00% 1.088 8 - ExternalStoreFactory::getStore
81654000.00% 1.080 71 - MediaWiki\Revision\RevisionStore::newRevisionSlots
81753850.00% 1.077 334 - MediaWiki\Revision\SlotRecord::getStringField
81853250.00% 1.065 280 - PPDStack_Hash::__construct
81953200.00% 1.064 4 - MediaWiki\HookContainer\HookContainer::run@1
82052750.00% 1.055 1 - MediaWiki\Extension\EventBus\EventBus::getInstanceForStream
82152100.00% 1.042 1 - Wikimedia\Rdbms\DBConnRef::lock
82252000.00% 1.040 16 - VersionChecker::handleExtensionDependency
82351700.00% 1.034 1 - MediaWiki\Extension\EventBus\EventBus::getInstance
82451600.00% 1.032 1 - User::isValidUserName
82551350.00% 1.027 1 - Wikimedia\Rdbms\DatabaseMysqlBase::lock
82651300.00% 1.026 280 - PPFrame_Hash::virtualBracketedImplode
82751000.00% 1.020 123 - Wikimedia\Timestamp\ConvertibleTimestamp::getTimestamp
82850650.00% 1.013 16 - TranslatablePage::isTranslationPage
82950600.00% 1.012 147 - Title::equals
83050400.00% 1.008 900 - ExtensionProcessor::addConfigGlobal
83150300.00% 1.006 1 - Wikibase\InternalSerialization\LegacyDeserializerFactory::newItemDeserialier

One curious note from the profile is:

3591.525      1 - DatabaseMessageIndex::retrieve
177.966      1 - section.query-m: SELECT * FROM `translate_messageindex` 
140.034 131620 - MessageIndex::unserialize

Where does the rest of 3273.525 go? The whole method is:

	public function retrieve( $forRebuild = false ) {
		if ( $this->index !== null && !$forRebuild ) {
			return $this->index;
		}

		$dbr = wfGetDB( $forRebuild ? DB_MASTER : DB_REPLICA );
		$res = $dbr->select( 'translate_messageindex', '*', [], __METHOD__ );
		$this->index = [];
		foreach ( $res as $row ) {
			$this->index[$row->tmi_key] = $this->unserialize( $row->tmi_value );
		}

		return $this->index;
	}

Is this just a profiling artefact? Maybe the time for MessageIndex::unserialize() is not accounted properly?.

Also, there are 5790 WikiPageMessageGroups, but 10659 calls to WikiPageMessageGroup::getDefinitions.

> $a = MessageGroups::getGroupsByType( 'WikiPageMessageGroup' );

> echo count( $a );
5790

WikiPageMessageGroup has caching though, so this is not an issue. What is a (small) issue is that it calls Title::getArticleId(), which does a separate query. This can be avoided with a join on the page table.

For comparison in the future, the message index rebuild script takes 26s for MetaWiki currently:

nikerabbit@mwdebug1001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m25.953s
user    0m6.292s
sys     0m1.624s
nikerabbit@mwdebug1001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m26.040s
user    0m5.896s
sys     0m1.716s

Change 598461 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/Translate@master] Avoid extra query in WikiPageMessageGroup::getDefinitions

https://gerrit.wikimedia.org/r/598461

Change 598470 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/CentralNotice@master] Speed up BannerMessageGroup's getKeys and getDefinitions.

https://gerrit.wikimedia.org/r/598470

Apart from the two patches above, I cannot see other low hanging fruit, other than adding message key loaders that avoid doing one query per message group by aggregating those queries into bigger ones.

Change 598461 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Avoid extra query in WikiPageMessageGroup::getDefinitions

https://gerrit.wikimedia.org/r/598461

Change 599028 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/Translate@master] MessageHandle: improve handling of outdated index

https://gerrit.wikimedia.org/r/599028

Change 599028 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] MessageHandle: improve handling of outdated index

https://gerrit.wikimedia.org/r/599028

QA plan

Affected projects: All Wikipedias

Are you sure? As far as I know, Translate is not installed on any Wikipedia except for Test Wikipedia. Did you mean all wikis using Translate?

That's was an issue of copy-pasting from other task (instead of an empty template, which doesn't exist yet)

T254430: Rdbms overhead due to "SELECT @@GLOBAL.read_only" queries effectively undid my performance optimization (effect about 4 second on metawiki) by making things about 5s slower on metawiki.

Change 598470 merged by jenkins-bot:
[mediawiki/extensions/CentralNotice@master] Speed up BannerMessageGroup's getKeys and getDefinitions.

https://gerrit.wikimedia.org/r/598470

For comparison in the future, the message index rebuild script takes 26s for MetaWiki currently:

nikerabbit@mwdebug1001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m25.953s
user    0m6.292s
sys     0m1.624s
nikerabbit@mwdebug1001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m26.040s
user    0m5.896s
sys     0m1.716s

Now it's around 20-22 seconds. Only known change since last check was the CentralNotice patch getting merged. Also running on mwmaint now since running it on mwdebug took 7 minutes!

nikerabbit@mwmaint1002:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m22.048s
user    0m7.176s
sys     0m1.076s
nikerabbit@mwmaint1002:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m20.612s
user    0m6.448s
sys     0m1.068s

I did a new profile:

146519.642 1 - MessageIndex::rebuild
242733.282 8882 - MessageIndex::checkAndAdd
322729.388 10845 - MessageGroupOld::getKeys
422425.337 10844 - WikiPageMessageGroup::getDefinitions
519790.275 17501 - Wikimedia\Rdbms\Database::query
619334.039 17501 - Wikimedia\Rdbms\Database::executeQuery
718728.002 5612 - BannerMessageGroup::getKeys
818614.615 17501 - Wikimedia\Rdbms\Database::executeQueryAttempt
918606.518 5612 - Banner::getMessageFieldsFromCache
1016745.236 11599 - Wikimedia\Rdbms\Database::select
1114731.837 17501 - Wikimedia\Rdbms\DatabaseMysqli::doQuery
1210275.107 184 - AggregateMessageGroup::getKeys
139826.242 5628 - WANObjectCache::getWithSetCallback
149778.900 5628 - WANObjectCache::fetchOrRegenerate
158692.442 5612 - Banner::getMessageFieldsCacheKey
168503.992 5630 - Banner::getName
178480.621 5639 - Banner::populateBasicData
187933.730 5913 - WANObjectCache::get
197880.287 5913 - WANObjectCache::getMulti
207625.443 11400 - Wikimedia\Rdbms\DBConnRef::__call
217477.071 5914 - MediumSpecificBagOStuff::getMulti
227389.618 11750 - Wikimedia\Rdbms\LoadBalancer::getConnection
237389.266 5699 - Wikimedia\Rdbms\DBConnRef::select
247189.750 5914 - MemcachedPeclBagOStuff::doGetMulti
257014.193 5891 - section.query-m: SELECT trs_key,trs_text FROM `page`,`translate_sections` WHERE page_namespace = N AND page_title = 'X' AND (page_id = trs_page) ORDER BY trs_order
266846.511 5892 - TranslateUtils::getSafeReadDB
276698.591 11751 - Wikimedia\Rdbms\LoadBalancer::getServerConnection
285884.431 5896 - Wikimedia\Rdbms\LoadBalancer::isMasterConnectionReadOnly
295727.417 5940 - BagOStuff::getWithSetCallback
305393.701 5896 - Wikimedia\Rdbms\LoadBalancer::Wikimedia\Rdbms\{closure}
315366.469 5896 - Wikimedia\Rdbms\DatabaseMysqlBase::serverIsReadOnly
325332.036 258374 - Wikimedia\Rdbms\ResultWrapper::next
335009.071 264354 - Wikimedia\Rdbms\ResultWrapper::fetchObject
344713.822 5612 - section.query-m: SELECT tmp_id,tmp_name,tmp_display_anon,tmp_display_account,tmp_archived,tmp_category,tmp_is_template FROM `cn_templates` `templates` WHERE tmp_name = 'X'
354287.172 275873 - Wikimedia\Rdbms\DatabaseMysqlBase::fetchObject
364039.513 5896 - section.query-m: SELECT @@GLOBAL.read_only AS Value
372987.195 1 - DatabaseMessageIndex::retrieve
382006.338 11599 - Wikimedia\Rdbms\Database::selectSQLText
391561.482 9 - Banner::{closure}
401561.439 9 - Banner::extractMessageFields
411358.536 9 - Parser::parse
421353.296 334365 - Wikimedia\AtEase\AtEase::restoreWarnings
431059.283 668730 - Wikimedia\AtEase\AtEase::suppressWarnings
441036.748 5621 - CNDatabase::getDb
451027.438 11599 - Wikimedia\Rdbms\Database::tableNamesWithIndexClauseOrJOIN
461014.068 264354 - Wikimedia\Rdbms\ResultWrapper::valid
47988.449 9 - Parser::internalParse
48981.176 5627 - wfGetDB
49924.129 17624 - Wikimedia\Rdbms\Database::tableNameWithAlias
50865.016 5627 - Wikimedia\Rdbms\LoadBalancer::getMaintenanceConnectionRef
51830.038 17624 - Wikimedia\Rdbms\Database::tableName
52733.595 522728 - Wikimedia\Rdbms\ResultWrapper::current
53707.559 17566 - SectionProfileCallback::__destruct
54705.476 17501 - MWLBFactory::{closure}
55702.881 582 - Parser::replaceVariables
56655.673 193 - PPFrame_Hash::expand
57626.747 17566 - SectionProfiler::profileOutInternal
58625.202 94 - Parser::braceSubstitution
59571.440 17501 - ProfilerXhprof::scopedProfileIn
60557.332 23491 - Wikimedia\Rdbms\DatabaseMysqlBase::numRows
61536.211 275873 - Wikimedia\Rdbms\DatabaseMysqli::mysqlFetchObject
62518.524 17726 - MessageGroups::getGroups
63499.309 17566 - SectionProfiler::scopedProfileIn
64496.423 11751 - Wikimedia\Rdbms\LoadBalancer::getLocalConnection
65494.123 17726 - MessageGroups::init
66484.707 17501 - Wikimedia\Rdbms\DatabaseMysqlBase::lastError
67449.446 184 - AggregateMessageGroup::getGroups
68446.387 65 - Parser::getTemplateDom
69430.795 70264 - SectionProfiler::getTime
70424.712 1 - TranslatablePageMessageGroupStore::getGroups
71420.235 1 - TranslatablePageMessageGroupStore::initGroupsFromTitle
72384.802 64 - Parser::fetchTemplateAndTitle
73379.072 64 - Parser::statelessFetchTemplate
74377.921 293374 - Wikimedia\Rdbms\DatabaseMysqli::lastErrno
75377.546 17624 - Wikimedia\Rdbms\Database::qualifiedTableComponents
76376.795 305327 - Wikimedia\Rdbms\ResultWrapper::unwrap
77357.711 11733 - Wikimedia\Rdbms\Database::makeList
78348.441 5975 - Title::newFromText
79347.157 9 - Parser::internalParseHalfParsed
80339.287 5975 - Title::newFromTextThrow
81336.965 123028 - TPSection::getTextWithVariables
82334.803 11751 - Wikimedia\Rdbms\DatabaseDomain::isCompatible
83305.810 227606 - TranslateUtils::normaliseKey
84302.763 276301 - Wikimedia\Rdbms\ResultWrapper::getDB
85298.281 17566 - SectionProfiler::profileInInternal
86297.203 5980 - Wikimedia\Rdbms\ResultWrapper::rewind
87293.184 5848 - WANObjectCache::worthRefreshPopular
88281.138 17488 - MediumSpecificBagOStuff::resolveSegments
89270.013 1 - WorkflowStatesMessageGroup::getDefinitions
90269.703 17501 - Wikimedia\Rdbms\Database::affectedRows
91263.814 6559 - MediaWiki\HookContainer\HookContainer::run
92263.592 5891 - WikiPageMessageGroup::makeGroupKeys
93259.041 46595 - Wikimedia\Rdbms\DatabaseMysqli::getBindingHandle
94254.185 17501 - Wikimedia\Rdbms\GeneralizedSql::stringify
95253.854 83 - MediaWiki\Revision\RevisionRecord::getContent
96251.938 166 - MediaWiki\Revision\RevisionStore::MediaWiki\Revision\{closure}
97249.658 5612 - Wikimedia\Rdbms\DBConnRef::fetchObject
98246.277 17523 - Wikimedia\Rdbms\Database::addQuotes
99240.681 5975 - Title::secureAndSplit
100239.001 222 - WANObjectCache::getWithSetCallback@1
101235.741 9 - MWTidy::tidy
102235.595 222 - WANObjectCache::fetchOrRegenerate@1
103235.451 9 - MediaWiki\Tidy\RemexDriver::tidy
104233.884 11910 - Wikimedia\Rdbms\DatabaseDomain::newFromId
105229.032 9 - RemexHtml\Tokenizer\Tokenizer::execute
106227.139 492 - PPFrame_Hash::expand@1
107223.179 9 - RemexHtml\Tokenizer\Tokenizer::executeInternal
108222.621 9 - RemexHtml\Tokenizer\Tokenizer::dataState
109213.889 11589 - Wikimedia\Rdbms\Database::fieldNamesWithAlias
110210.153 40 - Parser::braceSubstitution@1
111208.556 12609 - Title::prefix
112201.160 40 - PPTemplateFrame_Hash::cachedExpand
113196.345 5892 - MessageGroupOld::getMessageGroupStates
114191.797 6653 - Title::getPrefixedDBkey
115191.523 17501 - Wikimedia\Rdbms\DatabaseMysqli::fetchAffectedRowCount
116189.274 5908 - Monolog\Logger::debug
117189.098 8863 - MessageGroups::getPriority
118186.682 17501 - Wikimedia\Rdbms\Database::isWriteQuery
119181.783 11593 - Wikimedia\Rdbms\DatabaseMysqlBase::strencode
120181.603 17704 - Wikimedia\Rdbms\LoadBalancer::resolveDomainID
121173.576 6082 - Hooks::run
122173.258 5980 - Wikimedia\Rdbms\ResultWrapper::numRows
123169.951 5981 - Monolog\Logger::addRecord
124169.867 17501 - Wikimedia\Rdbms\GeneralizedSql::generalizeSQL
125167.374 5896 - Wikimedia\Rdbms\LoadBalancer::getLaggedReplicaMode
126164.807 184 - MessageGroups::expandWildcards
127164.584 17624 - Wikimedia\Rdbms\Database::relationSchemaQualifier
128164.464 1 - section.query-m: SELECT * FROM `translate_messageindex`
129161.608 17501 - Wikimedia\Rdbms\Database::assertQueryIsCurrentlyAllowed
130159.592 5976 - MediaWikiTitleCodec::splitTitleString
131159.183 460 - AutoLoader::autoload
132157.866 83 - MediaWiki\Revision\RevisionRecord::getSlot
133156.784 83 - MediaWiki\Revision\RevisionSlots::getSlot
134156.483 83 - MediaWiki\Revision\RevisionSlots::getSlots
135154.705 64 - Parser::fetchCurrentRevisionRecordOfTitle
136153.997 5764 - WANObjectCache::makeKey
137153.145 73 - MediaWiki\Revision\RevisionStore::loadSlotRecords
138151.401 1 - MessageIndex::getArrayDiff
139149.659 5953 - MediumSpecificBagOStuff::get
140149.051 4983 - Title::getNsText
141148.781 64 - Parser::statelessFetchRevisionRecord
142148.046 64 - MediaWiki\Revision\RevisionStore::getKnownCurrentRevision
143147.770 43927 - Wikimedia\Services\ServiceContainer::getService
144147.651 17501 - Wikimedia\Rdbms\Database::resultObject
145142.879 11599 - Wikimedia\Rdbms\Database::makeSelectOptions
146140.050 11593 - Wikimedia\Rdbms\DatabaseMysqli::mysqlRealEscapeString
147138.370 17566 - SectionProfiler::updateEntry
148138.006 11750 - Wikimedia\Rdbms\LoadBalancer::getReaderIndex
149135.351 23520 - Wikimedia\Rdbms\Database::dbSchema
150134.640 6380 - MediaWiki\HookContainer\HookContainer::callLegacyHook
151133.790 1 - section.query-m: SELECT tgr_group,tgr_state FROM `translate_groupreviews` WHERE tgr_lang = 'X'
152126.273 11750 - Wikimedia\Rdbms\LoadBalancer::getConnectionIndex
153122.908 5821 - MediumSpecificBagOStuff::makeKey
154117.498 17718 - MessageGroups::getGroup
155115.113 35002 - Wikimedia\Rdbms\DatabaseMysqli::mysqlError
156114.758 9 - Banner::getBodyContent
157114.714 9 - Banner::populateBodyContent
158113.060 347 - Parser::preprocessToDom
159111.568 133991 - MessageIndex::unserialize
160111.038 347 - Preprocessor_Hash::preprocessToObj
161107.429 70004 - Wikimedia\Rdbms\Database::fieldHasBit
162103.074 17566 - SectionProfileCallback::__construct
16399.571 17488 - SerializedValueContainer::isUnified
16499.300 73 - section.query-m: SELECT slot_revision_id,slot_content_id,slot_origin,slot_role_id,content_size,content_sha1,content_address,content_model FROM `slots` JOIN `content` ON ((slot_content_id = content_id)) WHERE slot_revision_id = 'X'
16599.079 17413 - MediaWiki\MediaWikiServices::getDBLoadBalancer
16698.100 5858 - Wikimedia\Rdbms\DBConnRef::__destruct
16797.307 5913 - WANObjectCache::processCheckKeys
16896.952 17501 - Wikimedia\Rdbms\TransactionProfiler::recordQueryCompletion
16996.567 11599 - Wikimedia\Rdbms\Database::beginIfImplied
17094.412 83 - MediaWiki\Revision\SlotRecord::getContent
17193.858 5918 - MemcachedBagOStuff::makeKeyInternal
17293.670 46595 - Wikimedia\Rdbms\Database::getBindingHandle
17393.641 147 - Parser::callParserFunction
17493.042 5951 - MediumSpecificBagOStuff::set
17592.691 83 - MediaWiki\Revision\RevisionStore::loadSlotContent
17692.452 43903 - MediaWiki\MediaWikiServices::getInstance
17789.471 9 - BlockLevelPass::doBlockLevels
17889.406 9 - BlockLevelPass::execute
17988.317 17624 - Wikimedia\Rdbms\Database::tablePrefix
18086.898 17503 - Wikimedia\Rdbms\Database::assertHasConnectionHandle
18186.637 51873 - Wikimedia\Rdbms\Database::fieldNameWithAlias
18285.528 73 - MediaWiki\Storage\SqlBlobStore::getBlob
18383.540 17501 - Wikimedia\Rdbms\Database::getQueryVerb
18482.238 17488 - SerializedValueContainer::isSegmented
18581.918 17502 - Wikimedia\Rdbms\Database::writesOrCallbacksPending
18681.859 52953 - Wikimedia\Rdbms\LoadBalancer::getWriterIndex
18781.555 46615 - Wikimedia\Rdbms\Database::trxLevel
18881.544 81 - CoreParserFunctions::intFunction
18981.153 4109 - RemexHtml\Tokenizer\Tokenizer::emitDataRange
19080.878 347 - Preprocessor::cacheGetTree
19180.334 5627 - wfGetLB
19278.220 82 - Message::toString
19378.128 81 - Message::plain
19477.255 82 - Message::fetchMessage
19577.223 47167 - Wikimedia\Rdbms\DatabaseDomain::getId
19676.502 9 - Parser::handleAllQuotes
19776.295 5869 - Monolog\Handler\GroupHandler::isHandling
19875.852 82 - MessageCache::get
19975.396 9 - Parser::handleMagicLinks
20074.991 3555 - RemexHtml\TreeBuilder\Dispatcher::characters
20172.575 127 - PPFrame_Hash::expand@2
20272.137 17 - Wikimedia\Services\ServiceContainer::createService
20371.585 5859 - Wikimedia\Rdbms\LoadBalancer::reuseConnection
20471.268 5276 - MediaWikiTitleCodec::getNamespaceName
20570.995 9 - Sanitizer::removeHTMLtags
20669.826 9 - Parser::handleTables
20769.160 35248 - Wikimedia\Rdbms\DatabaseMysqlBase::isQuotedIdentifier
20868.896 26994 - ExplodeIterator::next
20968.786 82 - MessageCache::getMessageFromFallbackChain
21068.509 82 - MessageCache::getMessageForLang
21168.469 23338 - Wikimedia\Rdbms\DatabaseMysqlBase::addIdentifierQuotes
21267.704 799 - Parser::magicLinkCallback
21367.050 5892 - TranslateUtils::shouldReadFromMaster
21467.029 82 - MessageCache::getMsgFromNamespace
21566.956 56 - Parser::makeFreeExternalLink
21666.373 14 - Parser::braceSubstitution@2
21765.380 5967 - Wikimedia\Rdbms\DatabaseMysqlBase::dataSeek
21864.395 2060 - RemexHtml\TreeBuilder\Dispatcher::startTag
21964.102 11824 - Wikimedia\Rdbms\Database::getDomainID
22062.337 5891 - TranslatablePage::getMessageGroupIdFromTitle
22162.128 15 - PPTemplateFrame_Hash::cachedExpand@1
22261.016 11752 - Wikimedia\Rdbms\DatabaseDomain::equals
22360.766 34976 - SerializedValueContainer::instanceOf
22460.394 3422 - RemexHtml\TreeBuilder\InBody::characters
22560.114 9 - MediaWiki\Revision\RevisionStore::getRevisionByTitle
22659.409 5896 - Wikimedia\Rdbms\LoadBalancer::hasStreamingReplicaServers
22759.206 57 - Linker::makeExternalLink
22858.562 35248 - Wikimedia\Rdbms\Database::prependDatabaseOrSchema
22958.040 9 - MediaWiki\Revision\RevisionStore::loadRevisionFromConds
23057.922 5621 - WANObjectCache::parsePurgeValue
23157.678 17704 - Wikimedia\Rdbms\LoadBalancer::resolveDomainInstance
23257.471 5612 - Banner::fromName
23357.314 23487 - Wikimedia\Rdbms\DatabaseMysqli::mysqlNumRows
23457.001 6052 - MediumSpecificBagOStuff::makeGlobalKey
23556.827 29109 - Wikimedia\Rdbms\Database::getFlag
23656.669 5956 - Title::getPrefixedText
23756.546 6560 - MediaWiki\HookContainer\HookContainer::getHandlers
23855.572 57 - MediaWiki\HookContainer\HookRunner::onLinkerMakeExternalLink
23955.435 2040 - RemexHtml\TreeBuilder\Dispatcher::endTag
24055.140 11754 - Wikimedia\Rdbms\DatabaseDomain::decode
24155.137 5976 - NamespaceInfo::isCapitalized
24254.978 5913 - WANObjectCache::makeSisterKeys
24354.476 3422 - RemexHtml\TreeBuilder\InBody::RemexHtml\TreeBuilder\{closure}
24453.857 57 - MediaWiki\SecureLinkFixer\Hooks::onLinkerMakeExternalLink
24553.459 2 - MediaWiki\SecureLinkFixer\HSTSPreloadLookup::getInstance
24652.685 11750 - Wikimedia\Rdbms\LoadBalancer::sanitizeConnectionFlags
24752.523 1961 - RemexHtml\TreeBuilder\InBody::startTag
24851.773 29260 - Wikimedia\Rdbms\Database::isOpen
24949.979 17497 - Wikimedia\Rdbms\ResultWrapper::__construct
25049.764 11790 - WANObjectCache::getCurrentTime
25149.600 1 - MessageIndex::clearMessageGroupStats
25249.152 4983 - Title::getTitleFormatter
25348.697 83 - MediaWiki\Revision\RevisionStore::newRevisionFromRowAndSlots
25447.571 44 - MessageCache::loadCachedMessagePageEntry
25547.501 164 - LinkCache::addLinkObj
25646.998 1 - JobQueueGroup::push
25746.461 5682 - MediaWiki\MediaWikiServices::getMainWANObjectCache
25846.275 5913 - WANObjectCache::unwrap
25946.274 597 - Title::getArticleID
26045.188 73 - MediaWiki\Revision\RevisionStore::newRevisionFromRow
26145.180 17501 - Wikimedia\Rdbms\Database::registerTempWrites
26244.908 44 - MessageCache::{closure}
26344.499 1930 - RemexHtml\TreeBuilder\InBody::endTag
26442.071 1 - JobQueue::push
26542.066 1 - JobQueue::batchPush
26642.035 1 - MediaWiki\Extension\EventBus\Adapters\JobQueue\JobQueueEventBus::doBatchPush
26741.744 642 - Parser::{closure}
26841.669 2072 - RemexHtml\TreeBuilder\TreeBuilder::insertElement
26940.684 17505 - Profiler::instance
27040.520 5964 - MediumSpecificBagOStuff::makeValueOrSegmentList
27140.478 3555 - RemexHtml\TreeBuilder\TreeBuilder::insertCharacters
27239.589 23676 - Wikimedia\Rdbms\DatabaseDomain::getSchema
27339.124 17638 - Wikimedia\ScopedCallback::__construct
27438.933 11550 - WANObjectCache::makeSisterKey
27538.732 9 - MediaWiki\Revision\RevisionStore::fetchRevisionRowFromConds
27638.490 2072 - RemexHtml\TreeBuilder\TreeBuilder::insertForeign
27737.897 9 - Wikimedia\Rdbms\DBConnRef::selectRow
27837.800 9 - Wikimedia\Rdbms\Database::selectRow
27937.781 53298 - StringMatcher::match
28037.131 9 - MediaWiki\MediaWikiServices::getParser
28136.862 11922 - Wikimedia\Rdbms\DatabaseDomain::__construct
28236.151 10 - section.query-m: SELECT rev_id,rev_page,rev_timestamp,rev_minor_edit,rev_deleted,rev_len,rev_parent_id,rev_sha1,comment_rev_comment.comment_text AS `rev_comment_text`,comment_rev_comment.comment_data AS `rev_comment_data`,comment_rev_comment.comment_id AS `rev_comment_cid
28336.005 44 - Wikimedia\Services\ServiceContainer::getService@1
28435.927 15 - Wikimedia\Services\ServiceContainer::createService@1
28534.736 5860 - Wikimedia\Rdbms\LoadBalancer::getRoleFromIndex
28634.508 11599 - Wikimedia\Rdbms\Database::selectOptionsIncludeLocking
28734.336 32306 - MessageGroupOld::getId
28834.104 11750 - Wikimedia\Rdbms\LoadBalancer::resolveGroups
28933.489 1 - ExtensionRegistry::loadFromQueue
29032.940 1 - TranslateUtils::getContents
29132.604 1709 - RemexHtml\TreeBuilder\TreeBuilder::generateImpliedEndTagsAndPop
29232.044 11554 - MemcachedBagOStuff::validateKeyEncoding
29331.749 9 - ParserOptions::newFromContext
29431.043 11851 - Monolog\Handler\AbstractHandler::isHandling
29530.771 6115 - MapCacheLRU::set
29629.998 20 - User::getOption
29729.637 17501 - Wikimedia\Rdbms\GeneralizedSql::__construct
29829.591 24 - Wikimedia\ObjectFactory::getObjectFromSpec
29929.455 29 - MediaWiki\User\UserOptionsManager::getOption
30029.389 3555 - MediaWiki\Tidy\RemexCompatMunger::characters
30129.305 5955 - MediumSpecificBagOStuff::makeKeyInternal
30229.181 638 - AutoLoader::autoload@1
30329.164 29 - MediaWiki\User\UserOptionsManager::loadUserOptions
30429.059 5976 - NamespaceInfo::getSubject
30529.059 1790 - RemexHtml\TreeBuilder\TreeBuilder::popAllUpToName
30628.883 10 - RequestContext::getLanguage
30728.624 5276 - Language::needsGenderDistinction
30828.552 11718 - Wikimedia\Rdbms\Database::getLBInfo
30928.427 5936 - MemcachedPeclBagOStuff::checkResult
31028.071 11750 - Wikimedia\Rdbms\LoadBalancer::getExistingReaderIndex
31127.757 11599 - Wikimedia\Rdbms\Database::makeOrderBy
31227.745 17781 - Wikimedia\Rdbms\DatabaseDomain::getTablePrefix
31327.077 230 - MediaWiki\Revision\RevisionStore::getDBConnectionRef
31426.924 11751 - Wikimedia\Rdbms\LoadBalancer::getServerCount
31526.749 36010 - ExplodeIterator::valid
31626.111 5898 - Wikimedia\Rdbms\Database::getDBname
31725.855 231 - Wikimedia\Rdbms\LoadBalancer::getConnectionRef
31825.810 23796 - Title::isExternal
31925.781 5612 - Banner::isValidBannerName
32025.510 2193 - Language::getNsIndex
32124.503 1 - MediaWiki\Revision\RevisionStore::newRevisionsFromBatch
32224.127 5976 - TitleValue::assertValidSpec
32323.649 11599 - Wikimedia\Rdbms\Database::makeGroupByWithHaving
32423.409 27030 - ExplodeIterator::refreshCurrent
32523.366 7 - Wikimedia\ObjectFactory::createObject
32623.335 120 - Composer\Autoload\ClassLoader::loadClass
32723.036 4985 - MediaWiki\MediaWikiServices::getTitleFormatter
32822.979 11751 - Wikimedia\Rdbms\LoadBalancer::enforceConnectionFlags
32922.759 5850 - WANObjectCache::determineKeyClassForStats
33022.757 120 - Composer\Autoload\includeFile
33122.623 2 - MultiHttpClient::run
33222.613 2 - MultiHttpClient::runMulti
33322.553 1 - MessageGroups::getCachedGroupDefinitions
33422.469 2 - MultiHttpClient::runMultiCurl
33521.945 5859 - WANObjectCache::isValid
33621.897 11751 - Wikimedia\Rdbms\DatabaseDomain::isUnspecified
33721.495 2049 - MediaWiki\Tidy\RemexCompatMunger::endTag
33821.479 5276 - Language::getNsText
33921.355 1 - ParserFactory::create
34021.349 1 - Parser::__construct
34121.348 10 - Parser::firstCallInit
34220.574 2081 - MediaWiki\Tidy\RemexCompatMunger::insertElement
34320.418 5967 - Wikimedia\Rdbms\DatabaseMysqli::mysqlDataSeek
34420.207 26994 - ExplodeIterator::current
34520.081 11782 - WikiPageMessageGroup::getTitle
34620.027 1 - ExtensionRegistry::readFromQueue
34719.977 6435 - MapCacheLRU::get
34819.787 5981 - Monolog\Logger::getLevelName
34919.674 1 - MediaWiki\Extension\EventBus\EventBus::send
35019.559 5898 - Wikimedia\Rdbms\Database::setLBInfo
35119.145 9233 - MessageGroupBase::getId
35218.957 1 - MessageGroups::getGroupLoaders
35318.709 5850 - WANObjectCache::resolveCTL
35418.622 1 - MediaWiki\Revision\RevisionStore::getSlotRowsForBatch
35518.404 9 - Parser::startParse
35618.174 9 - Parser::clearState
35717.727 5612 - Banner::setBasicDataDirty
35817.663 2049 - RemexHtml\Serializer\Serializer::endTag
35917.384 3555 - RemexHtml\Serializer\Serializer::characters
36017.372 1 - MediaWiki\Extension\EventBus\EventFactory::createJobEvent
36117.261 361 - Parser::argSubstitution
36217.047 1 - MediaWiki\Extension\EventBus\EventFactory::createEvent
36316.931 161 - Parser::getTargetLanguage
36416.872 19 - MediaWiki\User\DefaultOptionsLookup::getDefaultOptions
36516.812 1 - WikiMap::getWiki
36616.809 1 - WikiMap::getWikiReferenceFromWgConf
36716.572 1 - SiteConfiguration::loadFullData
36816.557 1 - wmfLoadInitialiseSettings
36916.455 573 - Sanitizer::fixTagAttributes
37016.434 83 - MediaWiki\Revision\RevisionStore::constructSlotRecords
37116.296 6563 - MediaWiki\HookContainer\HookContainer::getLegacyHandlers
37215.940 9 - Parser::finalizeHeadings
37315.835 348 - PPFrame_Hash::__construct
37415.823 6627 - MediaWiki\HookContainer\GlobalHookRegistry::getExtensionHooks
37515.650 9 - Sanitizer::normalizeCharReferences
37615.650 1 - MediaWiki\MediaWikiServices::getParserFactory
37715.490 148 - Parser::getTargetLanguageConverter
37815.477 6442 - MediaWiki\MediaWikiServices::getHookContainer
37915.471 5860 - Wikimedia\Rdbms\DBConnRef::__construct
38015.379 727 - RemexHtml\TreeBuilder\InPre::characters
38115.067 17718 - MessageGroups::normalizeId
38214.941 9 - MediaWiki\HookContainer\HookRunner::onParserClearState
38314.871 12878 - MapCacheLRU::has
38414.434 5977 - MediaWiki\MediaWikiServices::getTitleParser
38514.372 146 - PPFrame_Hash::newChild
38614.371 8698 - MessageGroupOld::exists
38713.946 161 - Title::getPageLanguage
38813.911 82 - MessageCache::load
38913.888 83 - MediaWiki\Revision\RevisionStoreRecord::__construct
39013.835 8698 - MessageGroupOld::isMeta
39113.759 2055 - RemexHtml\Serializer\Serializer::serializeNode
39213.660 3393 - ParserOptions::getOption
39313.604 1 - MediaWiki\Storage\SqlBlobStore::getBlobBatch
39413.560 93 - MediaWiki\Revision\RevisionStore::getDBConnectionRefForQueryFlags
39513.553 1 - MediaWiki\Storage\SqlBlobStore::fetchBlobs
39613.452 1 - Wikibase\Client\Hooks\ParserHookHandler::factory
39713.438 1 - Wikibase\Client\WikibaseClient::getRestrictedEntityLookup
39813.366 6952 - Title::getNamespace
39913.332 8699 - MessageGroupOld::getNamespace
40013.328 5981 - wfUrlencode
40113.163 1 - Wikibase\Client\WikibaseClient::getEntityLookup
40213.150 146 - PPTemplateFrame_Hash::__construct
40313.138 1 - MediaWiki\HookContainer\HookRunner::onUserGetDefaultOptions
40412.938 147 - MediaWiki\Revision\RevisionStore::ensureRevisionRowMatchesTitle
40512.490 9 - WANObjectCache::set
40612.481 5936 - MemcachedPeclBagOStuff::acquireSyncClient
40712.450 17728 - MessageGroups::singleton
40812.372 3 - MessageGroupWANCache::getValue
40912.354 5985 - NamespaceInfo::isTalk
41012.115 258 - RemexHtml\Tokenizer\Tokenizer::handleAttribsAndClose
41112.093 5621 - FauxRequest::wasPosted
41212.045 1 - ExtensionRegistry::exportExtractedData
41311.994 3839 - Sanitizer::normalizeCharReferencesCallback
41411.848 39 - Wikimedia\Services\ServiceContainer::getService@2
41511.843 5941 - MediumSpecificBagOStuff::debug
41611.815 29 - MediaWiki\User\UserOptionsManager::getCacheKey
41711.779 12 - Wikimedia\Services\ServiceContainer::createService@2
41811.766 6497 - Title::getDBkey
41911.737 162 - MediaWiki\Languages\LanguageFactory::getLanguage
42011.598 60 - User::isRegistered
42111.415 60 - User::getId
42211.202 2 - Wikimedia\Rdbms\LoadBalancer::reallyOpenConnection
42311.187 30 - User::load
42411.060 5848 - WANObjectCache::worthRefreshExpiring
42511.044 9 - BannerRenderer::__construct
42610.954 5304 - LocalisationCache::getItem
42710.950 2 - WebRequest::getSession
42810.902 1 - GadgetHooks::userGetDefaultOptions
42910.883 5953 - MediumSpecificBagOStuff::trackDuplicateKeys
43010.834 9 - Banner::getMixins
43110.806 9 - Banner::populateMixinData
43210.685 70 - MediaWiki\MediaWikiServices::getContentLanguage
43310.550 5848 - WANObjectCache::isAliveOrInGracePeriod
43410.480 5850 - NullStatsdDataFactory::increment
43510.415 1 - GadgetRepo::getStructuredList
43610.352 1 - User::loadFromSession
43710.332 7 - MediumSpecificBagOStuff::merge
43810.308 10 - MediaWiki\Storage\SqlBlobStore::expandBlob
43910.307 5946 - EmptyBagOStuff::doSet
44010.305 7 - MediumSpecificBagOStuff::mergeViaCas
44110.282 1 - MediaWiki\Session\SessionManager::getSessionForRequest
44210.121 5966 - BagOStuff::fieldHasFlags
44310.096 69 - Monolog\Logger::info
44410.056 68 - MediaWikiGadgetsDefinitionRepo::loadGadgets
44510.055 202 - Preprocessor_Hash::newFrame
44610.018 1 - MediaWikiGadgetsDefinitionRepo::getGadgetIds
4479.978 64 - MediaWiki\Revision\RevisionStoreCacheRecord::__construct
4489.715 5898 - Wikimedia\Rdbms\Database::getServer
4499.710 9581 - Parser::doQuotes
4509.619 2075 - MediaWiki\Tidy\RemexCompatFormatter::element
4519.546 12007 - MediaWiki\Config\ServiceOptions::get
4529.307 6070 - Wikimedia\Rdbms\DatabaseDomain::getDatabase
4539.181 2084 - RemexHtml\Serializer\Serializer::insertElement
4549.178 5975 - Sanitizer::decodeCharReferencesAndNormalize
4559.178 1 - MediaWiki\HookContainer\HookRunner::onParserFirstCallInit
4569.078 13126 - MediaWiki\HookContainer\GlobalHookRegistry::getDeprecatedHooks
4578.953 5944 - EmptyBagOStuff::doGet
4588.796 9 - MemcachedPeclBagOStuff::doGet
4598.698 12671 - Wikimedia\Assert\Assert::parameter
4608.218 6380 - MediaWiki\HookContainer\HookContainer::normalizeHandler
4618.096 11961 - NamespaceInfo::makeValidNamespace
4627.986 284 - MediaWikiTitleCodec::getPrefixedDBkey
4637.886 1 - Parser::initializeVariables
4647.816 2806 - BannerMessageGroup::getMessageGroupStates
4657.751 5278 - Language::getNamespaces
4667.741 3658 - RemexHtml\TreeBuilder\TreeBuilder::reconstructAFE
4677.717 5977 - MediaWikiTitleCodec::getTitleInvalidRegex
4687.675 2642 - Language::lc
4697.612 756 - Sanitizer::decodeTagAttributes
4707.563 1 - MagicWordFactory::getVariableIDs
4717.558 1 - AggregateMessageGroupLoader::getGroups
4727.532 1 - MediaWiki\HookContainer\HookRunner::onMagicWordwgVariableIDs
4737.470 761 - GlobalVarConfig::get
4747.464 64 - Title::getLatestRevID
4757.407 138 - MediaWiki\MediaWikiServices::getRevisionLookup
4767.367 8883 - MessageGroupStates::getStates
4777.335 9 - section.query-m: SELECT mixin_name FROM `cn_template_mixins` WHERE tmp_id = N
4787.113 9601 - MessageGroupBase::getFromConf
4797.085 1 - Wikibase\Client\Hooks\MagicWordHookHandler::factory
4807.056 122 - ExtensionProcessor::extractInfo
4816.961 1 - MediaWiki\Session\SessionManager::getEmptySession
4826.957 1 - MediaWiki\Session\SessionManager::getEmptySessionInternal
4836.821 183 - Sanitizer::validateTagAttributes
4846.729 2 - MediaWiki\MediaWikiServices::getRevisionStore
4856.685 12 - MediaWiki\MediaWikiServices::getDBLoadBalancerFactory
4866.649 1 - Wikibase\Client\Store\Sql\DirectSqlStore::getEntityLookup
4876.563 64 - TextContent::getWikitextForTransclusion
4886.556 2058 - RemexHtml\TreeBuilder\CachingStack::pop
4896.552 8883 - MessageGroupStates::__construct
4906.510 1 - Wikibase\Client\WikibaseClient::getStore
4916.434 1 - Wikibase\Client\Store\Sql\DirectSqlStore::getEntityRevisionLookup
4926.431 1 - Wikibase\Client\Store\Sql\DirectSqlStore::newEntityRevisionLookup
4936.424 2058 - RemexHtml\TreeBuilder\CachingStack::push
4946.187 15 - LCStoreCDB::get
4956.176 64 - TextContent::convert
4966.156 6903 - MapCacheLRU::getCurrentTime
4976.122 7655 - RemexHtml\TreeBuilder\Dispatcher::dispatcherCurrentNode
4986.063 1 - Wikibase\DataAccess\MultipleEntitySourceServices::getEntityRevisionLookup
4996.052 174 - LocalisationCache::getSubitem
5006.045 6632 - ExtensionRegistry::getAttribute
5016.023 10 - LocalisationCache::loadItem
5025.986 573 - Sanitizer::validateTag
5035.906 5 - Wikibase\DataAccess\SingleEntitySourceServices::getEntityRevisionLookup
5045.892 185 - MessageGroupBase::getMessageGroupStates
5055.869 861 - ParserOptions::getMaxPPNodeCount
5065.803 82 - MediaWiki\HookContainer\HookRunner::onMessageCache__get
5075.773 7 - LocalisationCache::loadSubitem
5085.737 1 - MessageGroups::initGroupsFromDefinitions
5095.734 9 - RemexHtml\TreeBuilder\Dispatcher::startDocument
5105.498 2314 - MediaWiki\MediaWikiServices::getNamespaceInfo
5115.480 6077 - FundraisingTranslateWorkflow\TranslateHooks::onModifyMessageGroupStates
5125.409 83 - Title::exists
5135.396 3 - Wikibase\Client\WikibaseClient::getDefaultInstance
5145.388 1 - Wikibase\Client\WikibaseClient::newInstance
5155.357 2405 - Sanitizer::decCharReference
5165.328 1 - LocalisationCache::getSubitemList
5175.216 183 - Sanitizer::validateAttributes
5185.206 861 - ParserOptions::getMaxPPExpandDepth
5195.109 6563 - MediaWiki\HookContainer\DeprecatedHooks::getDeprecationInfo
5205.046 918 - Wikimedia\Assert\Assert::parameterType
5215.029 3555 - RemexHtml\Serializer\HtmlFormatter::characters
5225.005 183 - Sanitizer::safeEncodeTagAttributes
5235.001 285 - Preprocessor::cacheSetTree
5244.995 293 - MediaWikiTitleCodec::formatTitle
5254.974 6 - MediumSpecificBagOStuff::add
5264.928 44 - Wikimedia\Services\ServiceContainer::getService@3
5274.906 265 - RemexHtml\TreeBuilder\InCell::characters
5284.891 4 - MemcachedPeclBagOStuff::doAdd
5294.889 99 - RemexHtml\TreeBuilder\InTableText::startTag
5304.872 126 - MediaWiki\Logger\LoggerFactory::getInstance
5314.856 11 - Wikimedia\Services\ServiceContainer::createService@3
5324.817 1916 - BlockLevelPass::closeParagraph
5334.797 6627 - MediaWiki\HookContainer\GlobalHookRegistry::getGlobalHooks
5344.730 5636 - MediaWiki\Tidy\RemexCompatMunger::getParentForInsert
5354.708 5975 - Title::getTitleCache
5364.687 509 - Parser::incrementIncludeSize
5374.675 7 - MediumSpecificBagOStuff::cas
5384.622 5627 - RemexHtml\TreeBuilder\TreeBuilder::appropriatePlace
5394.587 5975 - Title::setFragment
5404.586 7 - MemcachedPeclBagOStuff::doCas
5414.555 210 - MapCacheLRU::hasField
5424.554 143 - TextContentHandler::unserializeContent
5434.511 154 - RemexHtml\TreeBuilder\InCell::endTag
5444.485 6058 - Language::ucfirst
5454.465 9 - ParserOutput::getText
5464.451 486 - MediaWiki\MediaWikiServices::getLanguageFactory
5474.435 5639 - RemexHtml\Serializer\Serializer::interpretPlacement
5484.414 116 - MediaWiki\Logger\Monolog\WikiProcessor::__invoke
5494.395 1 - MediaWiki\Extension\EventBus\EventBus::getInstanceForStream
5504.370 702 - ParserOptions::getMaxIncludeSize
5514.320 88 - Wikimedia\Timestamp\ConvertibleTimestamp::convert
5524.274 1 - RequestContext::getOutput
5534.236 9 - ContentHandler::getPageLanguage
5544.175 6201 - Title::isSpecialPage
5554.157 166 - MediaWiki\Storage\NameTableStore::getName
5564.150 3393 - ParserOptions::lazyLoadOption
5574.140 4 - Monolog\Handler\WhatFailureGroupHandler::handle
5584.134 509 - PPNode_Hash_Tree::splitRawTemplate
5594.115 138 - MediaWiki\Logger\MonologSpi::getLogger
5604.112 8 - Monolog\Handler\AbstractProcessingHandler::handle
5614.109 1 - MediaWiki\MediaWikiServices::newInstance
5624.107 2 - Wikimedia\Rdbms\Database::initConnection
5634.098 2 - Wikimedia\Rdbms\Database::doInitConnection
5644.093 2 - Wikimedia\Rdbms\DatabaseMysqlBase::open
5654.085 1 - Wikimedia\Services\ServiceContainer::loadWiringFiles
5664.073 224 - Sanitizer::safeEncodeAttribute
5674.054 1 - EchoHooks::initEchoExtension
5684.030 2193 - NamespaceInfo::getCanonicalIndex
5694.010 5892 - MessageGroupOld::getWorkflowConfiguration
5703.984 5891 - WikiPageMessageGroup::__construct
5713.965 50 - MediaWiki\Interwiki\ClassicInterwikiLookup::isValidInterwiki
5723.951 1725 - RemexHtml\TreeBuilder\TreeBuilder::closePInButtonScope
5733.933 37 - Composer\Autoload\ClassLoader::loadClass@1
5743.928 154 - RemexHtml\TreeBuilder\TreeBuilder::adoptionAgency
5753.923 5981 - Title::__construct
5763.880 50 - MediaWiki\Interwiki\ClassicInterwikiLookup::fetch
5773.853 2 - MediaWiki\Session\SessionManager::getSessionFromInfo
5783.852 278 - Hooks::runner
5793.804 96 - Parser::setFunctionHook
5803.776 880 - GlobalVarConfig::has
5813.759 37 - Composer\Autoload\includeFile@1
5823.723 1 - Wikibase\DataAccess\SingleEntitySourceServices::getEntityDeserializer
5833.712 26 - MediaWiki\Logger\MonologSpi::createLogger
5843.704 1 - MediaWiki\Languages\LanguageFactory::newFromCode
5853.650 64 - AbstractContent::convert
5863.641 9 - Parser::handleInternalLinks
5873.616 2 - MediaWiki\Languages\LanguageNameUtils::isValidCode
5883.578 2 - MediaWiki\Revision\RevisionStoreFactory::getRevisionStore
5893.572 233 - Sanitizer::armorFrenchSpaces
5903.559 151 - WANObjectCache::makeGlobalKey
5913.525 574 - StripState::unstripBoth
5923.493 9 - Parser::handleInternalLinks2
5933.459 83 - MediaWiki\Storage\SqlBlobStore::getCacheKey
5943.456 82 - LinkCache::getGoodLinkFieldObj
5953.421 2 - Wikimedia\Services\ServiceContainer::get
5963.405 126 - {closure}
5973.347 12 - RequestContext::getUser
5983.316 1 - MediaWiki\Session\SessionManager::getSessionInfoForRequest
5993.315 83 - CommentStore::getCommentLegacy
6003.294 3 - MediaWiki\Session\SessionInfo::__construct
6013.288 3 - MediaWiki\Session\SessionProvider::newSessionInfo
6023.284 115 - RemexHtml\TreeBuilder\InCell::startTag
6033.268 145 - MagicWordArray::matchStartToEnd
6043.263 721 - MapCacheLRU::getAge
6053.261 1 - MediaWiki\Session\SessionManager::generateSessionId
6063.253 65 - PPFrame_Hash::loopCheck
6073.232 3 - MediaWiki\Session\SessionManager::getProviders
6083.211 2 - MediaWiki\MediaWikiServices::getRevisionStoreFactory
6093.209 37 - MediaWiki\Interwiki\ClassicInterwikiLookup::getInterwikiCached
6103.185 18 - Banner::getTitle
6113.174 5 - CachedBagOStuff::get
6123.151 37 - MediaWiki\Interwiki\ClassicInterwikiLookup::getInterwikiCacheEntry
6133.133 4116 - RemexHtml\TreeBuilder\CachingStack::getScopeTypesToStack
6143.080 83 - MediaWiki\HookContainer\HookRunner::onTitleExists
6153.050 2642 - Language::isMultibyte
6163.049 1 - section.query-m: SELECT slot_revision_id,slot_content_id,slot_origin,slot_role_id,content_size,content_sha1,content_address,content_model FROM `slots` JOIN `content` ON ((slot_content_id = content_id)) WHERE slot_revision_id IN (N,...,N)
6173.030 1 - Wikibase\Client\WikibaseClient::getEntityNamespaceLookup
6183.025 1 - DatabaseMessageIndex::store
6192.998 83 - MediaWiki\Revision\SlotRecord::__construct
6202.997 83 - CommentStore::getCommentInternal
6212.995 1 - RESTBagOStuff::doGet
6222.962 1 - Maintenance::setAgentAndTriggers
6232.933 9 - Parser::handleDoubleUnderscore
6242.917 2 - Wikibase\Client\WikibaseClient::getWikibaseServices
6252.917 652 - MagicWordFactory::get
6262.912 1 - Wikibase\Client\WikibaseClient::newEntitySourceWikibaseServices
6272.881 88 - Wikimedia\Timestamp\ConvertibleTimestamp::__construct
6282.872 28 - Parser::setHook
6292.847 1 - Maintenance::setLBFactoryTriggers
6302.811 26 - MediaWiki\Logger\MonologSpi::getHandler
6312.800 126 - MapCacheLRU::getField
6322.798 1 - DatabaseMessageIndex::lock
6332.769 153 - WikiMap::getCurrentWikiId
6342.768 13 - Wikimedia\Rdbms\LBFactoryMulti::getMainLB
6352.735 9 - ParserOptions::__construct
6362.727 2 - Wikimedia\Rdbms\LoadMonitor::getServerStates
6372.716 1223 - Wikimedia\Assert\Assert::hasType
6382.696 9 - ParserOptions::initialiseFromUser
6392.684 9 - RequestContext::getSkin
6402.673 448 - MagicWord::matchStartAndRemove
6412.653 83 - MediaWiki\Revision\RevisionSlots::setSlotsInternal
6422.647 2 - Wikimedia\Rdbms\DatabaseMysqli::mysqlConnect
6432.628 2 - Wikimedia\Rdbms\LBFactoryMulti::newMainLB
6442.601 2 - Wikimedia\Rdbms\LBFactoryMulti::newLoadBalancer
6452.595 1694 - Preprocessor_Hash::addLiteral
6462.565 1 - Wikimedia\Rdbms\LoadBalancer::pickReaderIndex
6472.555 1 - Wikibase\Client\WikibaseClient::getEntityChangeFactory
6482.554 88 - Wikimedia\Timestamp\ConvertibleTimestamp::setTimestamp
6492.537 164 - LinkCache::getGoodLinkID
6502.536 4 - MediaWiki\Logger\Monolog\LegacyHandler::write
6512.529 3658 - RemexHtml\TreeBuilder\ActiveFormattingElements::getTail
6522.460 24 - Wikimedia\ObjectFactory::expandClosures
6532.448 71 - Wikimedia\ScopedCallback::__destruct
6542.421 1 - JobQueueGroup::get
6552.414 1 - JobQueueGroup::factoryJobQueue
6562.399 12 - Wikimedia\ObjectFactory::Wikimedia\{closure}
6572.389 2066 - PPNode_Hash_Array::getLength
6582.386 83 - MessageCache::isLanguageLoaded
6592.357 1 - MediaWiki\MediaWikiServices::getLocalisationCache
6602.355 46 - Sanitizer::checkCss
6612.338 2 - MemcachedPeclBagOStuff::doSet
6622.332 38 - LinkCache::addGoodLinkObjFromRow
6632.330 166 - MediaWiki\Storage\NameTableStore::getTableFromCachesOrReplica
6642.323 15 - MediaWiki\Logger\MonologSpi::getHandler@1
6652.316 1 - wfLogProfilingData
6662.298 39 - wfDebug
6672.298 64 - MediaWiki\Revision\RevisionStore::getRevisionRowCacheKey
6682.276 2 - Wikimedia\Services\ServiceContainer::get@1
6692.243 83 - CommentStoreComment::__construct
6702.241 64 - MediaWiki\HookContainer\HookRunner::onBeforeParserFetchTemplateAndtitle
6712.238 10 - Wikimedia\ObjectFactory::getObjectFromSpec@1
6722.215 60 - Wikimedia\ScopedCallback::consume
6732.184 1 - CoreParserFunctions::register
6742.182 1 - Wikibase\Client\WikibaseClient::getDefaultEntityTypes
6752.181 15 - Cdb\Reader\DBA::get
6762.165 9 - Wikimedia\Services\ServiceContainer::{closure}
6772.164 65 - SectionProfiler::scopedProfileOut
6782.158 4 - MediaWiki\Session\SessionBackend::save
6792.146 2427 - RemexHtml\TreeBuilder\CachingStack::isInButtonScope
6802.144 2 - MediaWiki\Session\SessionBackend::MediaWiki\Session\{closure}
6812.139 60 - MediaWiki\HookContainer\HookRunner::onConvertContent
6822.118 9 - MediaWiki\HookContainer\HookRunner::onParserBeforeInternalParse
6832.112 40 - RemexHtml\TreeBuilder\InTableText::endTag
6842.108 70 - RemexHtml\TreeBuilder\InRow::startTag
6852.089 167 - DBAccessObjectUtils::getDBOptions
6862.079 1 - Wikimedia\Rdbms\LoadMonitor::scaleLoads
6872.051 148 - MagicWordArray::matchStartAndRemove
6882.009 2 - NamespaceInfo::getCanonicalNamespaces
6891.991 46 - Sanitizer::normalizeCss
6901.980 1 - MediaWiki\HookContainer\HookRunner::onCanonicalNamespaces
6911.972 122 - ExtensionProcessor::extractConfig2
6921.935 139 - RemexHtml\TreeBuilder\InTableText::processPendingCharacters
6931.926 192 - Title::equals
6941.922 87 - RemexHtml\TreeBuilder\TreeBuilder::anyOtherEndTag
6951.905 297 - RemexHtml\Tokenizer\LazyAttributes::getValues
6961.892 125 - RemexHtml\TreeBuilder\TreeBuilder::popAllUpToElement
6971.889 119 - Wikimedia\Assert\Assert::parameterElementType
6981.874 92 - MediaWiki\MediaWikiServices::getMessageCache
6991.873 2093 - RemexHtml\TreeBuilder\Element::__construct
7001.865 83 - User::newFromAnyId
7011.842 9 - Title::getContentModel
7021.828 1 - MediaWiki\Extensions\OAuth\Frontend\UIHooks::onBeforeCreateEchoEvent
7031.807 2405 - Sanitizer::validateCodepoint
7041.780 549 - Parser::getPreprocessor
7051.744 556 - Sanitizer::decodeCharReferences
7061.736 3 - Wikibase\Client\WikibaseClient::{closure}
7071.731 18 - TranslatablePage::isTranslationPage
7081.718 1 - Wikibase\DataModel\DeserializerFactory::newItemDeserializer
7091.686 5 - ObjectCache::newFromParams
7101.679 1 - Wikibase\Client\WikibaseClient::getEntityDiffer
7111.677 1339 - DBAccessObjectUtils::hasFlags
7121.656 82 - WikimediaMessagesHooks::onMessageCacheGet
7131.638 880 - GlobalVarConfig::hasWithPrefix
7141.631 258 - RemexHtml\Tokenizer\Tokenizer::consumeAttribs
7151.627 342 - MediaWiki\Revision\SlotRecord::getStringField
7161.626 9 - PageTranslationHooks::renderTagPage
7171.619 122 - ExtensionProcessor::extractHooks
7181.615 66 - Html::rawElement
7191.608 350 - PPFrame_Hash::virtualBracketedImplode
7201.596 1 - ExtensionRegistry::buildVersionChecker
7211.592 2093 - RemexHtml\Serializer\SerializerNode::__construct
7221.589 152 - MediaWiki\Content\ContentHandlerFactory::getContentHandler
7231.586 161 - Title::getDbPageLanguageCode
7241.584 1 - MediaWiki\HookContainer\HookRunner::onMediaWikiServices
7251.581 1 - Wikibase\Client\WikibaseClient::getDataValueDeserializer
7261.567 1844 - RemexHtml\TreeBuilder\TreeBuilder::generateImpliedEndTags
7271.562 1 - MediaWiki\MediaWikiServices::getSpecialPageFactory
7281.560 2 - Wikimedia\Rdbms\LoadBalancer::getServerAttributes
7291.549 2 - Wikimedia\Rdbms\Database::attributesFromType
7301.548 154 - WikiMap::getWikiIdFromDbDomain
7311.528 2081 - MediaWiki\Tidy\RemexCompatMunger::trace
7321.523 9 - MediaWiki\HookContainer\HookRunner::onParserAfterTidy
7331.512 1175 - StripState::unstripType
7341.508 9 - MagicWordArray::matchAndRemove
7351.507 1 - section.query-m: SELECT old_id,old_text,old_flags FROM `text` WHERE old_id IN (N,...,N)
7361.504 1 - DatabaseMessageIndex::unlock
7371.503 240 - RemexHtml\Tokenizer\LazyAttributes::init
7381.478 9 - MediaWiki\HookContainer\HookRunner::onPageContentLanguage
7391.465 1925 - BlockLevelPass::hasOpenParagraph
7401.444 73 - MediaWiki\Revision\RevisionStore::newRevisionSlots
7411.441 65 - Linker::normalizeSubpageLink
7421.430 1 - FileBasedMessageGroupLoader::getGroups
7431.424 897 - PPNode_Hash_Tree::__construct
7441.416 10 - AutoLoader::autoload@2
7451.413 1 - SkinFactory::makeSkin
7461.405 285 - PPDStack_Hash::__construct
7471.405 49 - PPFrame_Hash::expand@3
7481.396 2 - MediaWiki\MediaWikiServices::getGlobalIdGenerator
7491.392 9 - Parser::resetOutput
7501.384 64 - Hooks::isRegistered
7511.382 153 - RemexHtml\TreeBuilder\ActiveFormattingElements::push
7521.380 36 - StringUtils::explode
7531.372 169 - MediaWiki\Languages\LanguageConverterFactory::getLanguageConverter
7541.365 166 - MediaWiki\Revision\RevisionRecord::audienceCan
7551.361 1862 - RemexHtml\Tokenizer\PlainAttributes::__construct
7561.353 9 - Parser::handleHeadings
7571.353 22 - Wikimedia\Services\ServiceContainer::getService@4
7581.334 1927 - RemexHtml\Tokenizer\PlainAttributes::getValues
7591.324 3 - Wikimedia\Services\ServiceContainer::createService@4
7601.323 1 - DataValues\Deserializers\DataValueDeserializer::__construct
7611.321 1 - DataValues\Deserializers\DataValueDeserializer::assertAreDataValueClasses
7621.312 50 - PPDStack::push
7631.304 6 - DataValues\Deserializers\DataValueDeserializer::isDataValueClass
7641.270 404 - Language::getNamespaceIds
7651.268 66 - Html::openElement
7661.257 1 - Profiler::logDataPageOutputOnly
7671.257 1 - MediaWiki\Extension\EventBus\EventBusFactory::getInstanceForStream
7681.249 165 - MediaWiki\MediaWikiServices::getLinkCache
7691.242 57 - Parser::getExternalLinkAttribs
7701.228 83 - MediaWiki\Revision\RevisionRecord::__construct
7711.225 1 - ScoreHooks::onParserFirstCallInit
7721.224 83 - MediaWiki\Revision\RevisionSlots::__construct
7731.222 1072 - PPNode_Hash_Array::item
7741.222 1 - VersionChecker::__construct
7751.201 114 - Parser::getExternalLinkRel
7761.200 1 - ProfilerXhprof::getFunctionStats
7771.196 1 - ProfilerXhprof::getXhprofData
7781.193 18 - MessageHandle::getKey
7791.193 81 - ParserOptions::getUserLangObj
7801.191 320 - MediaWiki\Debug\DeprecatablePropertyArray::offsetGet
7811.183 9 - Parser::handleExternalLinks
7821.177 82 - WikimediaMessagesHooks::transformKeyForGettingStarted
7831.154 36 - MessageHandle::figureMessage
7841.149 50 - MapCacheLRU::setField
7851.148 9 - RemexHtml\TreeBuilder\TreeBuilder::startDocument
7861.148 9 - MathHooks::onParserAfterTidy
7871.142 1 - Wikibase\DataAccess\SingleEntitySourceServices::getEntityMetaDataAccessor
7881.142 1 - MediaWiki\HookContainer\HookRunner::onRequestContextCreateSkin
7891.131 176 - MediaWiki\Revision\SlotRecord::getAddress
7901.123 871 - PPNode_Hash_Tree::getRawChildren
7911.113 1 - MediaWiki\MediaWikiServices::getMainObjectStash
7921.113 1 - MobileFrontendHooks::onRequestContextCreateSkin
7931.108 47 - Language::normalize
7941.108 1 - VersionChecker::checkArray
7951.107 285 - RemexHtml\TreeBuilder\Element::getNoahKey
7961.101 797 - GlobalVarConfig::getWithPrefix
7971.098 160 - MagicWord::load
7981.097 1 - Wikibase\InternalSerialization\DeserializerFactory::newEntityDeserializer
7991.093 50 - RemexHtml\TreeBuilder\InRow::endTag
8001.076 2 - Wikibase\Lib\WikibaseSettings::getClientSettings
8011.071 82 - wfMessage
8021.063 57 - ParserOutput::addExternalLink
8031.062 388 - Sanitizer::encodeAttribute
8041.048 4 - MediaWiki\HookContainer\HookContainer::run@1
8051.043 1 - MediaWiki\MediaWikiServices::getSlotRoleRegistry
8061.030 864 - PPNode_Hash_Array::__construct
8071.030 1326 - Sanitizer::normalizeEntity
8081.020 1 - User::isValidUserName
8091.018 240 - RemexHtml\Tokenizer\Tokenizer::RemexHtml\Tokenizer\{closure}
8101.016 9 - MediaWiki\HookContainer\HookRunner::onParserAfterParse
8111.016 2 - Profiler::getOutputs
8121.009 14 - RequestContext::getRequest
8131.008 57 - Sanitizer::cleanUrl
8141.008 1 - AggregateMessageGroupLoader::initGroupsFromConf
8151.004 1 - Wikibase\InternalSerialization\LegacyDeserializerFactory::newEntityDeserializer
8161.001 797 - Parser::getTitle

Observations:

Change 616472 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/Translate@master] Optimization for TranslateUtils::getSafeReadDB in MessageIndex

https://gerrit.wikimedia.org/r/616472

Change 617121 had a related patch set uploaded (by Nikerabbit; owner: Nikerabbit):
[mediawiki/extensions/Translate@master] Use getConnectionRef in TranslateUtils::getSafeReadDB

https://gerrit.wikimedia.org/r/617121

Change 616472 abandoned by Nikerabbit:
[mediawiki/extensions/Translate@master] Optimization for TranslateUtils::getSafeReadDB in MessageIndex

Reason:
May not be needed. Let's see how Id796964a8350d3127b62c897d6321ac5f83539b9 works first.

https://gerrit.wikimedia.org/r/616472

Change 617121 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Use getConnectionRef in TranslateUtils::getSafeReadDB

https://gerrit.wikimedia.org/r/617121

The last patch did not have a significant impact:

1669129850.00% 33382.597      1 - MessageIndex::rebuild
1452622100.00% 29052.442   8935 - MessageIndex::checkAndAdd
772832550.00% 15456.651  10908 - MessageGroupOld::getKeys
758410350.00% 15168.207  10907 - WikiPageMessageGroup::getDefinitions
726477850.00% 14529.557  17570 - Wikimedia\Rdbms\Database::query
714597100.00% 14291.942  17570 - Wikimedia\Rdbms\Database::executeQuery
695282950.00% 13905.659  17570 - Wikimedia\Rdbms\Database::executeQueryAttempt
631114950.00% 12622.299   5618 - BannerMessageGroup::getKeys
627834950.00% 12556.699   5618 - Banner::getMessageFieldsFromCache
601419350.00% 12028.387  17268 - Wikimedia\Rdbms\DBConnRef::__call
595080750.00% 11901.615  17570 - Wikimedia\Rdbms\DatabaseMysqli::doQuery
594972600.00% 11899.452  11591 - Wikimedia\Rdbms\DBConnRef::select
593912900.00% 11878.258  11605 - Wikimedia\Rdbms\Database::select
344507550.00% 6890.151   5629 - WANObjectCache::getWithSetCallback
343268900.00% 6865.378   5629 - WANObjectCache::fetchOrRegenerate
318528600.00% 6370.572    186 - AggregateMessageGroup::getKeys
299128000.00% 5982.560   5725 - WANObjectCache::get
297832600.00% 5956.652   5725 - WANObjectCache::getMulti
285430950.00% 5708.619   5726 - MediumSpecificBagOStuff::getMulti
282153950.00% 5643.079   5618 - Banner::getMessageFieldsCacheKey
279002000.00% 5580.040   5726 - MemcachedPeclBagOStuff::doGetMulti
278595006.47% 5571.900   5939 - section.query-m: SELECT trs_key,trs_text FROM `page`,`translate_sections` WHERE page_namespace = N AND page_title = 'X' AND (page_id = trs_page) ORDER BY trs_order 
277362350.00% 5547.247   5626 - Banner::getName
276793150.00% 5535.863   5630 - Banner::populateBasicData
247276500.00% 4945.530  11652 - Wikimedia\Rdbms\LoadBalancer::getConnection
237838600.00% 4756.772   5940 - TranslateUtils::getSafeReadDB
233746750.00% 4674.935   6018 - Wikimedia\Rdbms\LoadBalancer::getConnectionRef
229065300.00% 4581.306  11655 - Wikimedia\Rdbms\LoadBalancer::getServerConnection
208944050.00% 4178.881 259924 - Wikimedia\Rdbms\ResultWrapper::next
206145600.00% 4122.912   5947 - Wikimedia\Rdbms\LoadBalancer::isMasterConnectionReadOnly
200483150.00% 4009.663   5953 - BagOStuff::getWithSetCallback
193366050.00% 3867.321 265905 - Wikimedia\Rdbms\ResultWrapper::fetchObject
192215400.00% 3844.308   5947 - Wikimedia\Rdbms\LoadBalancer::Wikimedia\Rdbms\{closure}
191461300.00% 3829.226   5947 - Wikimedia\Rdbms\DatabaseMysqlBase::serverIsReadOnly
183036553.86% 3660.731   5618 - section.query-m: SELECT tmp_id,tmp_name,tmp_display_anon,tmp_display_account,tmp_archived,tmp_category,tmp_is_template FROM `cn_templates` `templates` WHERE tmp_name = 'X' 
172056300.00% 3441.126      1 - DatabaseMessageIndex::retrieve
159744750.00% 3194.895 277482 - Wikimedia\Rdbms\DatabaseMysqlBase::fetchObject
155626487.73% 3112.530   5947 - section.query-m: SELECT @@GLOBAL.read_only AS Value
.
.
.
7009300.00% 70.093  11742 - Wikimedia\Rdbms\LoadBalancer::reuseConnection

TranslateUtils::getSafeReadDB is still high up in the list, and the SELECT @@GLOBAL.read_only AS Value queries are still there. Calls to Wikimedia\Rdbms\LoadBalancer::reuseConnection have doubled though.

@Krinkle Am I right that if all connections would be properly re-used, we would not see as many "read_only" status calls? Or is this unrelated? (T254430)

Cannot save again, same problem today on KDE Techbase => https://techbase.kde.org/KDE_TechBase:Contributors

with https://techbase.kde.org/index.php?title=Special:Translate&group=page-KDE+TechBase%3AContributors&language=fr&action=page&filter=

Échec de l’enregistrement de la traduction : This namespace is reserved for content page translations. The page you are trying to edit does not seem to correspond any page marked for translation.

Hi @Wladek92,

The main fix for this issue is included in Translate released in MLEB (MediaWiki Language Extension Bundle) 2020.07. Version 2020.10 will contain some additional minor improvements.

We now have a pretty good understanding of the issue, so saying it still happens with the old version of Translate that KDE wikis are using does not add additional information and is not actionable for us.

Until KDE wikis can upgrade to a new version, you can apply the following workarounds:

  • Wait (sometimes it just takes a bit and waiting for a few minutes after page is marked for translation helps)
  • Make a dummy edit (like adding a space) to a translatable page, and ask a translation admin to mark the page for translation again (and wait a bit, see above)
  • Ask a system admin to run the createMessageIndex.php script on the server

I understand - Im translator admin so i could try the 2 recurrent first steps as we did on Mediawiki in the early days, waiting for upper decision . Thanks Nike.

At 1.36.0-wmf.10 the script now runs under 20 seconds:

nikerabbit@mwmaint2001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m18.435s
user    0m7.288s
sys     0m0.924s
nikerabbit@mwmaint2001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m13.944s
user    0m4.912s
sys     0m0.848s
nikerabbit@mwmaint2001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m13.151s
user    0m4.512s
sys     0m0.764s
nikerabbit@mwmaint2001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m14.294s
user    0m4.744s
sys     0m0.852s
nikerabbit@mwmaint2001:~$ time mwscript extensions/Translate/scripts/createMessageIndex.php --wiki=metawiki

real    0m14.167s
user    0m5.136s
sys     0m0.872s

Also, no instances of MessageIndex: unable to acquire lock in the past 7 days, or any other MessageIndex errors for that matter.

It took more than a year, but after a lot of debugging and incremental improvements, I feel confident to be able to mark this task as resolved. My thanks to Abijeet, Chelsea, Daniel, Timo, to other participants in this task, and to others who I forgot to mention, who helped along the way.