Gergő Tisza has uploaded a new change for review.
https://gerrit.wikimedia.org/r/185323
Change subject: [WIP] Use shared cache for GetExtendedMetadata hook results
......................................................................
[WIP] Use shared cache for GetExtendedMetadata hook results
Use the cache of the owner wiki for ForeignDBFile files when the
metadata is accessed from a different wiki. This will fix the
problem of Commons file page edits not having any effect on
other wikis.
TODO:
* check if CommonsMetadata\HookHandler::onValidateExtendedMetadataCache
meeds to be changed (probably not)
* this will clear the cache when deployed; is a smoother transition needed?
Bug: T86955
Change-Id: Ic58a790e868b16b2f8f9caff2a70199ccfac8ac0
---
M includes/media/FormatMetadata.php
1 file changed, 25 insertions(+), 6 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core
refs/changes/23/185323/1
diff --git a/includes/media/FormatMetadata.php
b/includes/media/FormatMetadata.php
index e8e73af..6885208 100644
--- a/includes/media/FormatMetadata.php
+++ b/includes/media/FormatMetadata.php
@@ -1601,12 +1601,7 @@
return array();
}
- $cacheKey = wfMemcKey(
- 'getExtendedMetadata',
- $this->getLanguage()->getCode(),
- (int)$this->singleLang,
- $file->getSha1()
- );
+ $cacheKey = $this->getExtendedMetadataCacheKey( $file );
$cachedValue = $wgMemc->get( $cacheKey );
if (
@@ -1634,6 +1629,30 @@
return $extendedMetadata;
}
+ protected function getExtendedMetadataCacheKey( File $file ) {
+ if (
+ $file instanceof ForeignDBFile
+ && ( $repo = $file->getRepo() )
+ ) {
+ $cacheKey = $repo->getSharedCacheKey(
+ 'getExtendedMetadata',
+ $this->getLanguage()->getCode(),
+ (int)$this->singleLang,
+ $file->getSha1()
+ );
+ if ( $cacheKey ) {
+ return $cacheKey;
+ }
+ }
+
+ return wfMemcKey(
+ 'getExtendedMetadata',
+ $this->getLanguage()->getCode(),
+ (int)$this->singleLang,
+ $file->getSha1()
+ );
+ }
+
/**
* Get file-based metadata in standardized format.
*
--
To view, visit https://gerrit.wikimedia.org/r/185323
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic58a790e868b16b2f8f9caff2a70199ccfac8ac0
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Gergő Tisza <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits