When editing a template the resulting link updates go thru the Job Queue https://www.mediawiki.org/wiki/Manual:Job_queue which has a lot of variables which determine the speed that jobs get executed.
When you perform a null edit the page is reparsed, resulting in updates to the link related tables (iwlink, external_links, page_links ect) which is what the whatlinks here results. Normally the job queue forces a reparse as needed. a standard purge does not update the table, however a forcelinkupdate added to the purge URL will achieve the same thing see https://www.mediawiki.org/wiki/Manual:Parameters_to_index.php#Actions As for job queue numbers, dont try and understand it, its a confusing mess. A single job might affect many pages, might or might not spawn more jobs and several other variable actions On Sun, May 24, 2015 at 8:35 AM, Huji Lee <[email protected]> wrote: > I have a number of related questions regarding MediaWiki's caching > mechanism. I would be grateful if one could answer these please. The > assumption here is that a wiki is configured using the exact same caching > methods that Wikimedia uses. > > Please feel free to provide links to https://www.mediawiki.org as well as > https://noc.wikimedia.org when specifying configuration variables in your > answers as I am sure this would benefit future readers of this thread as > well. > > Q1: Page [[foo]] contains template {{bar}}. I edit that template, but the > page is not immediately updated. If I don't manually purge the cache of > that page, how long would it take for the page cache to be updated? Which > variable sets that time? And what is the value of that variable currently > at Wikimedia wikis? > > Q2: Page [[foo]] contains template {{bar}}, and that template provides a > link to page [[norf]]. I edit the template such that it instead links to > page [[qux]]. However, when I go to Special:WhatLinksHere/norf I still see > [[foo]] listed. Even if I try ?action=purge on [[foo]], that behavior > doesn't change. The only way to change it is either to edit [[foo]] and > change its content, or to simply go to the edit page of [[foo]] and save > without changes. > > Q2.A: If I don't do that null edit, how long would it take for the page > cache to be updated? Which variable sets that time? And what is the value > of that variable currently at Wikimedia wikis? > > Q2.B: Why is it that ?action=purge doesn't update the pagelinks table? > > Q2.C: Why is it that saving a page without any edits triggers any update > mechanism? (I would assume it'd be less costly overall to say "if diff is > null, don't do anything at all"; this question is more philosophical: why > would we not like the quoted behavior? > > Q2.D: Does the Special:WhatLinksHere results come from a cache? In other > words, if I query the database directly right after I change the template > (as mentioned in Q2) but before I do any null edits, would it still show > the old page link from [[foo]] to [[norf]]? Or would it show the correct > link from [[foo]] to [[qux]] while Special:WhatLinksHere is still showing > the old link? > > Q2.E: Is it possible to induce the same "resolution" through API? That is, > is it possible to try to save a page without any changes to its content via > API, and thereby forcefully update the page links entries for that page? > > Q3: Assume that 100 pages contain template {{bar}}, and that template > provides a link to page [[norf]]. I edit the template such that it instead > links to page [[qux]]. Would that add any jobs to the job queue? If yes, > how many? Should I expect 100 new jobs to be added, because 100 page > cache's need updating? > > Thanks in advance, > > Huji > _______________________________________________ > MediaWiki-l mailing list > To unsubscribe, go to: > https://lists.wikimedia.org/mailman/listinfo/mediawiki-l > _______________________________________________ MediaWiki-l mailing list To unsubscribe, go to: https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
