[MediaWiki-commits] [Gerrit] mediawiki...Translate[master]: Add MessageIndex::getKeys()
jenkins-bot has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/394960 ) Change subject: Add MessageIndex::getKeys() .. Add MessageIndex::getKeys() And optimize the implementation in CdbMessageIndex. Trying to fix a timeout in Special:TranslationStash by using the optimized getKeys(). Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735 --- M messagegroups/SandboxMessageGroup.php M utils/MessageIndex.php 2 files changed, 20 insertions(+), 9 deletions(-) Approvals: jenkins-bot: Verified Santhosh: Looks good to me, approved diff --git a/messagegroups/SandboxMessageGroup.php b/messagegroups/SandboxMessageGroup.php index 6628128..f18fd9d 100644 --- a/messagegroups/SandboxMessageGroup.php +++ b/messagegroups/SandboxMessageGroup.php @@ -77,10 +77,8 @@ $list[$index] = ''; } - // Message index of all known messages - $mi = MessageIndex::singleton(); // Get some random keys - $all = array_keys( $mi->retrieve() ); + $all = MessageIndex::singleton()->getKeys(); // In case there aren't any messages if ( $all === [] ) { return $list; diff --git a/utils/MessageIndex.php b/utils/MessageIndex.php index 3d132f9..37c91bc 100644 --- a/utils/MessageIndex.php +++ b/utils/MessageIndex.php @@ -126,6 +126,14 @@ */ abstract public function retrieve( $forRebuild = false ); + /** +* @since 2018.01 +* @return string[] +*/ + public function getKeys() { + return array_keys( $this->retrieve() ); + } + abstract protected function store( array $array, array $diff ); protected function lock() { @@ -615,6 +623,16 @@ return $this->index; } + $this->index = []; + foreach ( $this->getKeys() as $key ) { + $this->index[$key] = $this->unserialize( $reader->get( $key ) ); + } + + return $this->index; + } + + public function getKeys() { + $reader = $this->getReader(); $keys = []; while ( true ) { $key = $keys === [] ? $reader->firstkey() : $reader->nextkey(); @@ -624,12 +642,7 @@ $keys[] = $key; } - $this->index = []; - foreach ( $keys as $key ) { - $this->index[$key] = $this->unserialize( $reader->get( $key ) ); - } - - return $this->index; + return $keys; } protected function get( $key ) { -- To view, visit https://gerrit.wikimedia.org/r/394960 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/Translate Gerrit-Branch: master Gerrit-Owner: NikerabbitGerrit-Reviewer: Catrope Gerrit-Reviewer: KartikMistry Gerrit-Reviewer: Nikerabbit Gerrit-Reviewer: Santhosh 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...Translate[master]: Add MessageIndex::getKeys()
Nikerabbit has uploaded a new change for review. ( https://gerrit.wikimedia.org/r/394960 ) Change subject: Add MessageIndex::getKeys() .. Add MessageIndex::getKeys() And optimize the implementation in CdbMessageIndex. Trying to fix a timeout in Special:TranslationStash by using the optimized getKeys(). Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735 --- M messagegroups/SandboxMessageGroup.php M utils/MessageIndex.php 2 files changed, 19 insertions(+), 9 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate refs/changes/60/394960/1 diff --git a/messagegroups/SandboxMessageGroup.php b/messagegroups/SandboxMessageGroup.php index 6628128..6fcd47f 100644 --- a/messagegroups/SandboxMessageGroup.php +++ b/messagegroups/SandboxMessageGroup.php @@ -77,10 +77,8 @@ $list[$index] = ''; } - // Message index of all known messages - $mi = MessageIndex::singleton(); // Get some random keys - $all = array_keys( $mi->retrieve() ); + $all = MessageIndex::singleton->getKeys(); // In case there aren't any messages if ( $all === [] ) { return $list; diff --git a/utils/MessageIndex.php b/utils/MessageIndex.php index 3d132f9..6ccbed6 100644 --- a/utils/MessageIndex.php +++ b/utils/MessageIndex.php @@ -126,6 +126,13 @@ */ abstract public function retrieve( $forRebuild = false ); + /** +* @since 2018.01 +*/ + public function getKeys() { + return array_keys( $this->retrieve() ); + } + abstract protected function store( array $array, array $diff ); protected function lock() { @@ -615,6 +622,16 @@ return $this->index; } + $this->index = []; + foreach ( $this->getKeys() as $key ) { + $this->index[$key] = $this->unserialize( $reader->get( $key ) ); + } + + return $this->index; + } + + public function getKeys() { + $reader = $this->getReader(); $keys = []; while ( true ) { $key = $keys === [] ? $reader->firstkey() : $reader->nextkey(); @@ -624,12 +641,7 @@ $keys[] = $key; } - $this->index = []; - foreach ( $keys as $key ) { - $this->index[$key] = $this->unserialize( $reader->get( $key ) ); - } - - return $this->index; + return $keys; } protected function get( $key ) { -- To view, visit https://gerrit.wikimedia.org/r/394960 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I92eeaa38279053ea2fbf5dac5ec2412670312735 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Translate Gerrit-Branch: master Gerrit-Owner: Nikerabbit___ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits