Commit graph

67 commits

Author SHA1 Message Date
Umherirrender
0f9d316dff Replace wfGetDB with LoadBalancer in LinkCache service
Avoid use of global loadbalancer

Change-Id: I4991e9501cef4fd294d9cae197b31080ca907d45
2020-08-26 19:58:48 +02:00
Reedy
b1e515e36e Fix even more PSR12.Properties.ConstantVisibility.NotFound
Change-Id: I4a30a44bc33fc98479799438d65342f6529e14f9
2020-05-16 00:51:46 +01:00
daniel
495323c063 Remove compat code for pre-MCR schema.
NOTE: This was manually tested to ensure it does not
break updates, see T242764.

Bug: T198557
Change-Id: I1d9f5465018bae10124514bc38169e23e0e613e6
2020-03-24 19:45:47 +01:00
James D. Forrester
4f2d1efdda Coding style: Auto-fix MediaWiki.Classes.UnsortedUseStatements.UnsortedUse
Change-Id: I94a0ae83c65e8ee419bbd1ae1e86ab21ed4d8210
2020-01-10 09:32:25 -08:00
Aaron Schulz
a5c7fd0db2 Move callers away from Title::GAID_FOR_UPDATE
These callers just need to load some data from DB_MASTER.
Subsequent code needing that latest title data should also use the
required flags, rather than relying on flakey global cache state.

Change-Id: I53248ea4b5bf1cd953f956c41b8244831ec5ef04
2019-09-09 13:19:08 -07:00
Aaron Schulz
ebc8342d53 Add NS_MEDIAWIKI to LinkCache::isCacheable() to help MessageBlobStore cache regeneration
Change-Id: I55550a0ea5b9db0c87a67bb8bc06e846db58b9fe
2019-07-10 15:18:48 -07:00
jenkins-bot
c3d8fa1fc3 Merge "Update LinkCache to use NamespaceInfo" 2019-05-06 16:48:20 +00:00
Aryeh Gregor
6f2906e36a Update LinkCache to use NamespaceInfo
Change-Id: Ie9ebc2564861068dea8a64aea5cbeacb03597cea
2019-05-06 09:37:58 +00:00
Aryeh Gregor
0006d922b0 NS_MEDIA also always has page_id 0
Change-Id: I0047e5f8e367fe3e8433e715ea56616a6f8dab85
2019-05-05 11:37:01 +03:00
jenkins-bot
44eecdda93 Merge "Make LinkCache::isCacheable include namespaces like NS_CATEGORY/NS_MODULE" 2019-03-17 18:49:05 +00:00
Aaron Schulz
9804ee9d3a Make LinkCache::isCacheable include namespaces like NS_CATEGORY/NS_MODULE
Category and module pages are some of the most frequently referenced

Change-Id: I6d29e883883cbea596b287494e75663d09130749
2019-03-16 04:48:15 +00:00
Aaron Schulz
93b24207c1 Make EditPage::getTemplates avoid page table query spam
This changes TemplatesOnThisPageFormatter to use LinkBatch
and LinkBatch/LinkCache to manage the field.

Change-Id: I523158cdffc599d4d29bab91c98e55085130cee2
2019-03-15 02:34:00 -07:00
James D. Forrester
33418878f9 Drop LinkCache->addLink(), deprecated in 1.27 and unused
Change-Id: Id6395cc9a122375349b7a13c051049bca3f5ab08
2019-02-09 07:49:09 +00:00
Max Semenik
ca41a48ffe Hard deprecate LinkCache::addLink()
Deprecated in 1.27, no callers.

Change-Id: Ide39566b6741d2b844ddd5c8e62dd0fc0382670a
2018-12-08 22:23:08 -08:00
Kunal Mehta
f503ab10b8 Have LinkCache::getMutableCacheKeys() accept LinkTarget
Change-Id: Id84590b3aa285e31a358877167fe8ff502077f3c
2018-08-14 22:56:27 -07:00
Aaron Schulz
b4c8614885 Convert LinkCache to using MapCacheLRU
Clean up the variable names while at it.

Change-Id: I3b7860c0657111d73567e247bcc1ebcbaef53e22
2018-07-16 21:16:00 +00:00
Umherirrender
130ec2523d Fix PhanTypeMismatchDeclaredParam
Auto fix MediaWiki.Commenting.FunctionComment.DefaultNullTypeParam sniff

Change-Id: I865323fd0295aabd06f3e3c75e0e5043fb31069e
2018-07-07 00:34:30 +00:00
Aaron Schulz
9b6168da53 Make LinkCache::invalidateTitle() use the instance WAN cache
Change-Id: Idefcee9b37dcb73b2f18351123b097f4ae68fa76
2018-06-14 21:00:38 -07:00
Aaron Schulz
d735dc562d Move Database and subclasses to Rdbms namespace
Change-Id: I52bef87512f9ddd155d1f4cc0052f6b7a0db5b42
2017-04-12 10:43:57 -07:00
Aaron Schulz
488a647831 Move IDatabase/IMaintainableDatabase to Rdbms namespace
Change-Id: If7e8a8ff574661fd827de8bcec11d2c39a687300
2017-03-28 15:32:38 -07:00
Aaron Schulz
2e5eb693de objectcache: add WANObjectCacheReaper for assuring purges
* This fixes keys based on some sort of change log.
  Updates are wrapped in a mutex and keep track of the
  last known good position.
* Make WANObjectReapUpdate class that cleans up title
  related keys using the recentchanges table. This triggers
  as a deferred updates on RC view.

Change-Id: I7f14b9ca2533032147e62b1a3cc004a23da86579
2017-01-27 02:21:06 +00:00
Aaron Schulz
8ebec93fea Cache NS_TEMPLATE/NS_FILE titles in LinkCache persistently
Queries from parsing are the top use of selectRow() according
to reverse flame graphs on xenon. This does not bother with
pages in namespaces less likely to be included.

Change-Id: Ica5d6e52c830cd71effff21933b8c64691082c11
2016-09-07 00:20:26 -07: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
Kunal Mehta
a50a2731cb LinkCache: Don't try looking up NS_SPECIAL
Change-Id: I1afe8c780c3b12ae806ac19c4efb37c7033951ca
2016-05-26 14:47:45 -07:00
Kunal Mehta
e8e2cc0ffc Add LinkCache::getSelectFields() and use it in a few places
Change-Id: Ic65b20cc2aa41f9b481e280918fe95c57da53221
2016-05-13 00:25:07 -07:00
Kunal Mehta
ef2a84e108 Remove now-unused LinkCache::$instance
Follows-up 449084ec4.

Change-Id: Ia43344beba0f1e5f98210d0e4e51e53e138495d1
2016-05-12 16:05:19 -07:00
Kunal Mehta
449084ec4e Add LinkCache to MediaWikiServices
LinkCache::singleton() is now deprecated, and the destroySingleton() and
setSingleton() methods were removed. They were not used in extensions,
and the usage in core was updated to use MediaWikiServices.

Change-Id: I08bb4f7913b03f71331ff683d0197c948aad6790
2016-05-12 15:44:33 -07:00
Kunal Mehta
f77cbc02b1 LinkCache: Use LinkTarget instead of Title
Change-Id: I9ed5a095fc50334a3c41fd52f6d05611dadbaf68
2016-05-12 11:36:54 -07:00
Kunal Mehta
cfea4137e9 LinkCache: Clarify in doc comments what format $title is
Sometimes $title is a Title object, sometimes it is the prefixed DB key
as a string.

Change-Id: I0e574f35f0c3193bc933e77250c42765626d3cbf
2016-04-27 14:34:18 -07:00
Kunal Mehta
07d4c17da3 LinkCache: Remove unncessary & from singleton() function
Change-Id: I9e9e530a59d7b9062d0214ba82146b313e6b10fd
2016-04-27 14:30:54 -07:00
Kunal Mehta
288e9d2280 LinkCache: Make clearBadLink() only clear that link
Calling clear() empties all of mBadLinks instead of the one that was
requested.

Change-Id: Iec7f7845704dd5742b5bdf4aff05678194e08054
2016-04-26 14:42:47 -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
Florian
d237380021 Fix not-loaded DbPageLanguage when Title::getPageLanguage() get's called
If the Title object isn't the title of the current viewed WikiPage, the page_lang
field of the database isn't requested. This results in the problem, that
Title::getPageLanguage() always returns the default content language, even if
the page language is different (changed with Special:PageLanguage, if
wgPageLanguageUseDB is true). That is problematic for the Translate extension,
which relies on the correct page language.

This change makes sure, that getPageLanguage() always return the correct page
language. If the page language isn't loaded already, Title::getPageLanguage()
now does a database lookup (if $wgPageLanguageUseDB is true) to get the correct
page language. It will use LinkCache for the page_lang field.

Bug: T121666
Change-Id: I0ae5ea39f7a124ed427ca5dfb26c1a116b27a94e
2016-02-16 20:37:40 +00:00
Timo Tijhof
03a620004b LinkCache: Convert from MapCacheLRU to HashBagOStuff.
Change-Id: I28a9509ad4c6d724a12dc72bc50d3cf58642c651
2015-11-09 23:17:47 +00:00
Timo Tijhof
dcf8ec0283 LinkCache: Minor clean up of documentation and variable names
In preparation for conversion from MapCacheLRU to HashBagOStuff.

* Use early-return pattern for error and rejection cases.
* Add 'int' to @return for getGoodLinkFieldObj() per the
  values set in addGoodLinkObj().
* Add type hints for Title where possible.
* Avoid single-letter variables like $f and $s.
* Add visibility for public static methods.

Change-Id: Iab90539922f648c21cb147f749943a64f598e8de
2015-11-09 23:17:43 +00:00
Timo Tijhof
8b463047a9 LinkCache: Remove deprecated getBadLinks and getGoodLinks methods
Deprecated since MediaWiki 1.26 (32d1017e7d). These methods contain the
only remaining callers of MapCacheLRU::getAllKeys() which is the only odd
method of MapCacheLRU not supported by BagOStuff.

Change-Id: I64e054803595d49a5bd779accc94353924f7d87d
2015-11-03 06:08:36 +00:00
Kevin Israel
eb8d6eb754 Update description of LinkCache::forUpdate()
The $mForUpdate flag no longer causes the FOR UPDATE option to be added.
This was at first only true for some values of $wgAntiLockFlags (since
r9248 / ba8a00bcb833), though since 12757b50f8 (when the setting was
removed), is always the case.

The added text is based on the description for $wgAntiLockFlags.

Change-Id: I02a3e2df37ec40c7e36ae6210c8263f13d9e3e5b
2015-10-30 06:09:29 -04:00
Kevin Israel
3f516b5139 Remove unused private property LinkCache::$mClassVer
This was added in r2084 / c280ef342b for a "persistent link cache"
feature, which became obsolete in 1.4 and was removed in 1.5.

https://www.mediawiki.org/wiki/Manual:$wgEnablePersistentLC

Follows-up r9276 / cb45389b9c.

Change-Id: I2f27d6acc1a1f9a9382a47d56921f570107a7be9
2015-09-25 07:54:02 -04:00
Kunal Mehta
32d1017e7d Don't let LinkCache grow indefinitely
Especially in long running maintenance scripts, this can be problematic.

LinkCache is now LRU-based, and will store a maximum of 10,000 good titles,
and 10,000 bad ones.

LinkCache::getGoodLinks() and getBadLinks() are deprecated since they
problematic to support in this implementation and are unused.

Bug: T106998
Change-Id: I1328149d65a5e75a5d6e10cb2686a099562a1847
2015-07-27 10:26:46 -07:00
umherirrender
70f3afd548 Remove unneeded empty lines at begin of if/else/foreach body
An if body must not begin with an empty line

Change-Id: I62b058be337fcc85a120fcd3dadce564db59a271
2015-06-19 20:05:45 +02:00
Ricordisamoa
2ae155da52 Fix phpcs errors in includes/
Mostly Squiz.WhiteSpace.SuperfluousWhitespace.EmptyLines

Change-Id: I678b2f0902f11cd1dfa1611b9da24e7237df9122
2015-01-08 20:15:07 +01:00
Chad Horohoe
aa21e125a3 Remove obvious function-level profiling
Xhprof generates this data now. Custom profiling of various
sub-function units are kept.

Calls to profiler represented about 3% of page execution
time on Special:BlankPage (1.5% in/out); after this change
it's down to about 0.98% of page execution time.

Change-Id: Id9a1dc9d8f80bbd52e42226b724a1e1213d07af7
2015-01-07 11:14:24 -08:00
Aaron Schulz
12757b50f8 Removed $wgAntiLockFlags to unify the code paths
Change-Id: Ia709ccdc9addc55c99cbff21a5ff3009b5fbb53c
2014-10-03 10:42:17 -07:00
Kevin Israel
dd5c1b7fb7 Title::getContentModel(): load from DB if necessary
Also don't cast $model to int in LinkCache::addGoodLinkObj(); content
model IDs are non-numeric strings, not integers, so that field was
always populated with the value 0. Because 0 is a falsy value, this
caused subsequent calls to Title::getContentModel() to return the
default model rather than the correct one.

Also (hopefully) fixed every single query that could cause a
LinkCache entry to be added without the content model.

Bug: 69789
Change-Id: I94f06baf406afa538cd2b10139598442f9fc6759
2014-08-20 19:44:17 -04:00
Siebrand Mazeland
2c04b0163b Remove incorrect return type for getGoodLinkID()
Change-Id: Ib9c0dcf5104fdc5f364e0b49d539b63bf2eb046c
2014-05-11 18:19:00 +02:00
umherirrender
fd66273c94 Fixed some @params documentation (includes/[cache|objectcache])
Swapped some "$var type" to "type $var" or added missing types
before the $var. Changed some other types to match the more common
spelling. Makes beginning of some text in captial.
Also added some missing @param.

Change-Id: I86fd10e3f2d4bb80e7432533038d124693acfb3c
2014-04-19 01:19:46 +02:00
MaxSem
0998c41943 Revert "Include short descriptions for extensions bundled in the release"
Contains var_dump(), self-merged non-trivial code.

This reverts commit 96b2c66e24.

Change-Id: Ie630466ef50e6bcdabf01daff28c283c764aae35
2014-01-12 23:59:44 +00:00
Mark A. Hershberger
96b2c66e24 Include short descriptions for extensions bundled in the release
Also fix styling for the list of extensions.

Bug: 43817
Change-Id: I5335225683ec8f1c163bb67f478787ebc52ee3a9
2014-01-12 18:21:55 -05:00
Siebrand Mazeland
cbb6648205 Update some documentation
Change-Id: I6a75964d2048de451e9b01a08f87cfe1ebd842ba
2013-12-03 14:59:45 +01:00
Siebrand Mazeland
4a4fc11008 Update LinkCache::addGoodLinkObj param defaults to int
Update the defaults for $revision and $model from bool to int, making it
consistent with the documented input. Also update docs and line length.
Change "inval( $x )" to preferred "(int) $x" while changing the method.

Change-Id: Ic19a408aa7c50fb03e2c3aca8df3fa7cedc2420b
2013-11-18 21:09:24 +01:00