On Tuesday, Oct 21, 2003, at 11:38 US/Pacific, Poor, Edmund W wrote:
The kerfuggle touched my what? I dunno :-)
I was under the impression that EVERY TIME a user requests a page,
the software has to double-check each internal link for the presence or
absence of the linked page.
My ancient Greek cry of jubilation only applies, if this is the case...
Well, I generally recommend reading the software in detail to see what
it does ;) but here's a summary for those who wish to remain partially
sane:
* Grab page info from db
* Are you anonymous user? if so:
* check for cached output html
* compare its timestamp against cur_touched
* if ok, send that out and leave
* Check if client told us it's got a locally-cached copy of the page
* compare its timestamp against cur_touched
* if ok, say to use the cached copy and leave
* Do a quick query to the link tables for all existing and non-existing
links from this page
* Parse the wikitext
* As we find each wikilink, look it up in the lists we already got to
see if it exists
* On the off chance the tables are corrupt, anything that wasn't
listed will be checked individually against cur
* Output
* If anon, save output html in the server cache.
On page creation and deletion we update the cur_touched timestamp of
all pages that link to the given page, thus forcing them to re-render,
and we update the link tables to reflect the new existence or
non-existence of the page.
-- brion vibber (brion @
pobox.com)