DatabaseMessageIndex::get() does the exact same query tens of times in one request. For example, after deleting a translation unit, it just did the same query 44 times. This seems to happen for several actions (not just deleting). Will do some more debugging later and report the details here.
Description
Description
Details
Details
Subject | Repo | Branch | Lines +/- | |
---|---|---|---|---|
Cache MessageIndex key values | mediawiki/extensions/Translate | master | +27 -5 |
Event Timeline
Comment Actions
Some of the callers:
Title->getPageLanguage/ContentHandler->getPageLanguage/Hooks::run/call_user_func_array/PageTranslationHooks::onPageContentLanguage/TranslatablePage::isTranslationPage/MessageHandle->getKey/MessageHandle->figureMessage/MessageIndex::getGroupIds/DatabaseMessageIndex->get ContentHandler->getPageViewLanguage/ContentHandler->getPageLanguage/Hooks::run/call_user_func_array/TranslateHooks::onPageContentLanguage/MessageHandle->getEffectiveLanguage/MessageHandle->getCode/MessageHandle->figureMessage/MessageIndex::getGroupIds/DatabaseMessageIndex->get Parser->transformMsg/Parser->preprocess/Hooks::run/call_user_func_array/PageTranslationHooks::renderTagPage/TranslatablePage::isTranslationPage/MessageHandle->getKey/MessageHandle->figureMessage/MessageIndex::getGroupIds/DatabaseMessageIndex->get Hooks::run/call_user_func_array/TranslateToolbox::toolboxAllTranslations/MessageHandle->isValid/MessageHandle->getGroupIds/MessageIndex::getGroupIds/MessageHandle->getKey/MessageHandle->figureMessage/MessageIndex::getGroupIds/DatabaseMessageIndex->get VectorTemplate->execute/VectorTemplate->renderPortals/VectorTemplate->renderPortal/Hooks::run/call_user_func_array/TranslateToolbox::toolboxAllTranslations/MessageHandle->isValid/MessageHandle->getGroupIds/MessageIndex::getGroupIds/DatabaseMessageIndex->get MessageCache->parse/Parser->parse/Hooks::run/call_user_func_array/PageTranslationHooks::renderTagPage/TranslatablePage::isTranslationPage/MessageHandle->getKey/MessageHandle->figureMessage/MessageIndex::getGroupIds/DatabaseMessageIndex->get
Looks like the vast majority of these are from PageTranslationHooks::renderTagPage() (called from Parser::transformMsg()). This should probably have some sort of caching or something like that.
Comment Actions
Change 291271 had a related patch set uploaded (by Glaisher):
Cache MessageIndex key values