[MediaWiki-commits] [Gerrit] mediawiki/core[master]: Reduce WikiPage::getContentModel() queries via caching

2016-09-14 Thread jenkins-bot (Code Review)
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 
Gerrit-Reviewer: Addshore 
Gerrit-Reviewer: BryanDavis 
Gerrit-Reviewer: jenkins-bot <>

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits


[MediaWiki-commits] [Gerrit] mediawiki/core[master]: Reduce WikiPage::getContentModel() queries via caching

2016-09-11 Thread Aaron Schulz (Code Review)
Aaron Schulz has uploaded a new change for review.

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

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(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/35/309835/1

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: newchange
Gerrit-Change-Id: I3b25be5e2b456d495cd89da9ef88cf3a2f83cbdf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz 

___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits