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 huji.huji@gmail.com 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