Aaron Schulz has uploaded a new change for review.
https://gerrit.wikimedia.org/r/191823
Change subject: Avoid "recent-contributors" queries that cause timeouts
......................................................................
Avoid "recent-contributors" queries that cause timeouts
bug: T90036
Change-Id: I803b06f9eb7a4a61bcb0248520b4144158963983
---
M AbuseFilterVariableHolder.php
1 file changed, 10 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/AbuseFilter
refs/changes/23/191823/1
diff --git a/AbuseFilterVariableHolder.php b/AbuseFilterVariableHolder.php
index 5783804..f77c1b9 100644
--- a/AbuseFilterVariableHolder.php
+++ b/AbuseFilterVariableHolder.php
@@ -488,14 +488,20 @@
}
$dbr = wfGetDB( DB_SLAVE );
- $res = $dbr->select( 'revision',
- 'DISTINCT rev_user_text',
+ $sqlTmp = $dbr->selectSQLText(
+ 'revision',
+ array( 'rev_user_text', 'rev_timestamp'
),
array(
'rev_page' =>
$title->getArticleID(),
- 'rev_timestamp<' .
$dbr->addQuotes( $dbr->timestamp( $cutOff ) )
+ 'rev_timestamp < ' .
$dbr->addQuotes( $dbr->timestamp( $cutOff ) )
),
__METHOD__,
- array( 'ORDER BY' => 'rev_timestamp
DESC', 'LIMIT' => 10 )
+ // Some pages have < 10 authors but
many revisions (e.g. bot pages)
+ array( 'ORDER BY' => 'rev_timestamp
DESC', 'LIMIT' => 100 )
+ );
+ $res = $dbr->query(
+ "SELECT rev_user_text FROM ($sqlTmp) AS
tmp " .
+ "GROUP BY rev_user_text ORDER BY
MAX(rev_timestamp) DESC LIMIT 10"
);
$users = array();
--
To view, visit https://gerrit.wikimedia.org/r/191823
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I803b06f9eb7a4a61bcb0248520b4144158963983
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AbuseFilter
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits