On Thu, 15 Jan 2004 02:35:45 -0800, Brion Vibber
<brion(a)pobox.com> wrote:
I suspect
there are 150000+ articles to check against 10-500 entries
on the watchlist.
The longest watchlists are in the range of a couple thousand, iirc. A
few hundred is not atypical for power users. Most people have
relatively few.
Ok.
I do not know
how many watchlist entries are there (brion?), but I
suspect at least a
magnitude less. Let's say 10000 entries.
Actually, it's about on the same order as the total number of pages.
de.wikipedia has 60419 watchlist entries; en.wikipedia has 263770.
Huh. I thought it's much less.
However any given page has at most a couple hundred
people watching it.
What if the
entries have:
watchlist db:
the user id
watched article #
article last changed (date, submitter, comment)
And every time an article gets updated, it updates all the _watchlist_
entries
for itself.
Updating up to a couple hundred rows on page save may or may not be a
worse performance drain than the current system. If it works, it might
be worth it for the faster reads.
You should check how many updates and how many watchlist checks are there
in every sec/min.
I think it should be tested (dunno how big piece of code would that
require,
which would be discarded is it turns out not to be better)...
I don't know about locking issues and difference on read/write performance
on
a loaded mySQL; maybe lots of small writes (update on save) slow the db
more than lots of
larger reads (check watchlist now).
Tests I did some time ago were inconclusive about read
improvements,
but they may not have been properly indexed for the join to cur to get
the revision data.
I can't help in that. :-)
Also a slight complication; currently the watchlist
only uses a single
entry for each page and its talk page. To add timestamps to sort on,
we'd have to double the number of rows involved.
Well, you can usually only gain speed by using more space for auxilary
tables. I do not believe in that hardware upgrade is the solution for lack
of
design. :-]
(...which doesn't mean that I have the holy grail handy, though.)
cya,
grin