To continue the saga of grand new schemes-that-solve-it-all, to be
implemented by someone else:
One server (the bigger one), let's call it edit-en, operates exactly
like our current system. Except it's closed to all spiders and runs
apache and mysql on one machine.
The other server, let's call it en, only runs apache and serves a static
tree to the world. The static tree is updated once a night from edit-en.
It's spidered by Google and takes the brunt of the browsers. Its
interface is radically stripped: no logging in, no cookies, no
RecentChanges, no special pages. Just a search box, What-links-here,
Edit-this-page, Discuss-this-page and page-history. The latter three
direct to edit-en; edit-en decides whether its version is newer than
en's version, and if so, displays a warning and lets people edit away.
The unwashed masses that come in through Google will thus never touch
edit-en.
The updating of en's versions could be done by dumping the whole
database and let en format it into a static HTML tree (probably too
slow), or by having edit-en always store its cached files in the file
system, to be periodically exported to en via rsync (need to make sure
that *all* files are cached, of course).
Benefits:
* hopefully speedup (but can edit-en alone do a decent job for us
editors?)
* to be done with current hardware
* simpler interface for drive-by-browsers
* Future extension: have several static ens, use DNS
round-robin on them.
* En can have a nice fast htdig search whose index is statically
computed once (or is that too slow?).
* The servers are almost independent; if either one goes
down, Wikipedia is at least still readable.
* If the rsync variant is chosen, we could offer public rsync
and static Wikipedia mirrors would spring up all over the world.
Drawbacks:
* some programming to distribute the static HTML to en.
* Edit wars or vandalizing could increase shortly prior to the
time of storing a static version on en (maybe randomize the
time of doing that?)
* Copyright violations and vandalizations sometimes stay visible
for a whole day.
Axel