Commit graph

28 commits

Author SHA1 Message Date
Aaron Schulz
e3a08b067f Make SiteStatsUpdate avoid setting negative values in the table
Change-Id: I0ade767a174e0fa1bc0d0982cb92c14d48991f33
2020-02-15 21:57:10 +00:00
Umherirrender
0688dd7c6d Set method visibility for various constructors
Change-Id: Id3c88257e866923b06e878ccdeddded7f08f2c98
2019-12-03 20:17:30 +01:00
Max Semenik
8a98dd9d59 Convert some private static arrays to constants
Remove @since for some private ones as we don't guarantee anything
about private class members.

Change-Id: Ifb898353c02082e9ef69d67f69339345c6cd154d
2019-10-16 01:30:54 +00:00
Daimona Eaytoy
e7ee0bc0f5 Better docs to make phan happy
Change-Id: I8a9a6330cf1f889cbb77dfc28c93774204767323
2019-09-07 16:47:18 +00:00
Aaron Schulz
149b5a016c Remove $wgSiteStatsAsyncFactor feature and related $wgMainStash use
Also include ss_row_id = 1 in the UPDATE query to avoid gap locks

Bug: T227376
Change-Id: I7b730bab05e6d8b6799b623e0aff089c1103c3c2
2019-07-13 18:53:51 -07:00
Aaron Schulz
f72ae0f6e6 Switch various LoadBalancer::getConnection() callers to getConnectionRef()
This is the preferred method as it enforces read-only mode for DB_REPLICA
and handles LoadBalancer::reuseConnection() calls automatically.

Change-Id: Iab9439ba8e0810fa14c302661ed7a3534f6bfc0d
2019-07-12 10:56:30 -07:00
Aaron Schulz
ab2bf12cf8 Add test for WikiPage post-edit stats update
Bug: T187585
Change-Id: I734b7f42799a9bfe77a1fb1269bb3d48b3852ffd
2018-03-06 00:43:39 +00:00
Brad Jorsch
27c61fb1e9 Add actor table and code to start using it
Storing the user name or IP in every row in large tables like revision
and logging takes up space and makes operations on these tables slower.
This patch begins the process of moving those into one "actor" table
which other tables can reference with a single integer field.

A subsequent patch will remove the old columns.

Bug: T167246
Depends-On: I9293fd6e0f958d87e52965de925046f1bb8f8a50
Change-Id: I8d825eb02c69cc66d90bd41325133fd3f99f0226
2018-02-23 10:06:20 -08:00
Timo Tijhof
d6cc261cb2 Use lock(,,0) instead of lockIsFree && lock(,,1) for non-blocking locks
This pattern is already used elsewhere and seems like a more efficient
way to acquire locks in a non-blocking way.

Change-Id: Idb369e7cb03b793d5f8295e956fecd8d1f849e17
2018-02-15 14:30:26 -08:00
Aaron Schulz
6094897687 Various cleanup to SiteStats classes
* Mark method visibility
* Remove unused code/methods
* Use WAN cache process cache in pagesInNs()
* Remove "m" prefix from SiteStatsInit fields
* Avoid use of $wg variables

Change-Id: Iab4001f02c9b2e8667ca4bac033fd4f6ef272148
2018-02-12 15:09:19 -08:00
Brian Wolff
73e7b9cfcc Do not include RC_EXTERNAL in number active users on Special:Statistics
We already exclude external (mostly Wikidata) actions from counting on
Special:ActiveUsers as of 56524c05. Should be consistent.

Change-Id: Ib69a614a65246a0f4f47365751f9bef130f47475
2017-09-29 05:09:29 +00:00
Umherirrender
a9007e8baf Add missing & to @param documentation to match functon call
Change-Id: I81e68310abcbc59964b22e0e74842d509f6b1fb9
2017-08-11 18:47:46 +02:00
Kunal Mehta
72aaae7b0b SiteStatsUpdate: Avoid deprecated wfMemcKey()
And the deprecated ObjectCache::getMainStashInstance() while we're at
it.

Change-Id: Iebd4e029c3ab6443403087d991bb263ef83b1ed8
2017-05-25 11:20:23 -07:00
Aaron Schulz
488a647831 Move IDatabase/IMaintainableDatabase to Rdbms namespace
Change-Id: If7e8a8ff574661fd827de8bcec11d2c39a687300
2017-03-28 15:32:38 -07:00
WMDE-Fisch
7b5f08e703 Replace deprecated Context::getStats() with MWServices::getStatsdDataFactory()
Change-Id: I1756f69ca2ebd301a5049bf758d1a87c37771fe6
2017-03-17 12:07:03 +01:00
Aaron Schulz
b73ffae752 Make SiteStatsUpdate implement MergeableUpdate
Change-Id: I53c9bf133f0707f2fa203ddd1a7fcb65be8b1329
2016-09-14 23:18:20 +00:00
Aaron Schulz
950cf6016c Rename DB_SLAVE constant to DB_REPLICA
This is more consistent with LoadBalancer, modern, and inclusive
of master/master mysql, NDB cluster, and MariaDB galera cluster.

The old constant is an alias now.

Change-Id: I0b37299ecb439cc446ffbe8c341365d1eef45849
2016-09-05 22:55:53 -07:00
Tim Starling
18938b1ce8 Clear SiteStats process cache after DB update
This fixes a phpunit test error, wherein {{NUMBEROFFILES}} would give
the number of files in the host wiki, not in the temporary database,
when Scribunto was installed, due to a Scribunto phpunit data provider
calling SiteStats::pages().

Change-Id: Ic0d021a72addaa2a13a6b94fd34dccc423de3a8f
2016-08-25 11:44:10 +10:00
Aaron Schulz
d60c3c80d4 Convert SiteStatsUpdate to using newer addCallableUpdate method
Change-Id: Ic6037b90edecc936432e997c504e81b3ae8732ad
2016-07-19 13:53:51 -07:00
Kunal Mehta
6e9b4f0e9c Convert all array() syntax to []
Per wikitech-l consensus:
 https://lists.wikimedia.org/pipermail/wikitech-l/2016-February/084821.html

Notes:
* Disabled CallTimePassByReference due to false positives (T127163)

Change-Id: I2c8ce713ce6600a0bb7bf67537c87044c7a45c4b
2016-02-17 01:33:00 -08:00
Aaron Schulz
6cc65335f3 Convert SiteStatsUpdate to using getMainStashInstance()
Also fixed various $wgMemc related comments

Change-Id: I20602b672f724c8df1e82bbe3c586cb899a54640
2015-10-31 13:05:03 -07:00
Aaron Schulz
0f7893f877 Update various @params from DatabaseBase to IDatabase
Change-Id: I98e44cdffb0fc0d729f69f702799139afb988c20
2015-10-05 05:24:29 +00:00
Ori Livneh
6542746e6c Update context stats in SiteStatsUpdate
In addition to updating the database / memcached, make SiteStatsUpdate also
update the context stats object with the deltas it is processing.

Change-Id: Icc12c07ab4233e1105a402b80d290bdb64df6ea7
2015-05-28 21:38:57 -07:00
Aaron Schulz
1e07005bce Removed SpecialStatistics query group; vslow is enough
Change-Id: I1841f5c64ebeeed7c3e54a11216add5c104ad69d
2015-04-09 11:39:15 -07:00
Chad Horohoe
90d90dad6e Remove hitcounters and associated code
The hitcounter implementation in MediaWiki is flawed
and needs removal. For proper metrics, it is suggested to use
something like Piwik or Google Analytics.

RFC: https://www.mediawiki.org/wiki/Requests_for_comment/Removing_hit_counters_from_MediaWiki_core
Change-Id: I0e5006a7e8a09c800f8fa4effa9399e8afdd7a57
2014-10-20 13:01:55 -07:00
Siebrand Mazeland
7daa687d68 Update documentation and formatting for includes/deferred/
Change-Id: I56f35be6e549aec13c4fbad5ee6301aa29358031
2013-11-20 21:50:02 +00:00
Siebrand Mazeland
368a95dc65 Update formatting on includes/deferred/
Change-Id: Id3f143eae3781b26dcbc3ba63a566b7a6006c0cc
2013-11-20 21:48:48 +00:00
Tim Starling
64d0dc06a0 Move the DeferredUpdates hierarchy to its own directory
The grouping makes at least as much sense as job/, and certainly makes
more sense than cache/. With directories named after base classes, it is
fairly easy to tell what should go where. The grouping of
DeferredUpdates, DataUpdate and CallableUpdate would surely be
uncontroversial.

The move of SearchUpdate out of search/ demonstrates the conflict between
arrangement by module versus arrangement by type, which is the most
difficult design question here. I think arrangement by type is more
consistent with e.g. the arrangement of the core root, i.e. tests/,
resources/, maintenance/, etc. where a given feature will have its files
split up into a mostly type-based hierarchy.

I also tidied up AutoLoader.php by moving includes/content to the correct
location, sorted alphabetically by subdirectory.

Verified with AutoLoaderTest.

Change-Id: Ib369411d0caca38e72978084aa57348f1b892ed0
2013-11-04 10:32:40 +11:00