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

Reply via email to