jenkins-bot has submitted this change and it was merged. Change subject: Reduce WikiPage::getContentModel() queries via caching ......................................................................
Reduce WikiPage::getContentModel() queries via caching Change-Id: I3b25be5e2b456d495cd89da9ef88cf3a2f83cbdf --- M includes/page/WikiPage.php 1 file changed, 16 insertions(+), 8 deletions(-) Approvals: BryanDavis: Looks good to me, approved jenkins-bot: Verified diff --git a/includes/page/WikiPage.php b/includes/page/WikiPage.php index d5dfd3d..b09ef0d 100644 --- a/includes/page/WikiPage.php +++ b/includes/page/WikiPage.php @@ -488,15 +488,23 @@ */ public function getContentModel() { if ( $this->exists() ) { - // look at the revision's actual content model - $rev = $this->getRevision(); + $cache = ObjectCache::getMainWANInstance(); - if ( $rev !== null ) { - return $rev->getContentModel(); - } else { - $title = $this->mTitle->getPrefixedDBkey(); - wfWarn( "Page $title exists but has no (visible) revisions!" ); - } + return $cache->getWithSetCallback( + $cache->makeKey( 'page', 'content-model', $this->getLatest() ), + $cache::TTL_MONTH, + function () { + $rev = $this->getRevision(); + if ( $rev ) { + // Look at the revision's actual content model + return $rev->getContentModel(); + } else { + $title = $this->mTitle->getPrefixedDBkey(); + wfWarn( "Page $title exists but has no (visible) revisions!" ); + return $this->mTitle->getContentModel(); + } + } + ); } // use the default model for this page -- To view, visit https://gerrit.wikimedia.org/r/309835 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I3b25be5e2b456d495cd89da9ef88cf3a2f83cbdf Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Aaron Schulz <asch...@wikimedia.org> Gerrit-Reviewer: Addshore <addshorew...@gmail.com> Gerrit-Reviewer: BryanDavis <bda...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits