Andre Engels wrote:
I have no idea what 'real statistics' could
either strengthen or weaken the
point I am making. There are no 'real statistics' about the amount of time
it costs to make edits on all machines as opposed to doing all on one. There
has been no Wikipedia implementation on either.
I have not taken my time to contribute to the source code, so I'll
keep my opinions on the details to myself. But you are right that
there are no detailed statistics today, and I think that this is sad.
I wish the best for and give my deepest respect to those who take
their time to work on the source code and hardware. My spontaneous
reaction, however, is that compartmentization of different operations
to different servers is a mistake. It can certainly work, but it also
risks to make the system more complex and vulnerable than necessary.
The architecture that I would advocate is a single MySQL backend
(possibly with a cold or hot standby) and multiple parallel PHP+Apache
frontends, that are all equal and balance the load among them. This
should be combined with profiling of any request (both complete
HTTP requests, and individual SQL statements) that takes longer than a
set limit of wallclock time. The latter would provide the performance
statistics that we are missing today.
Susning.nu doesn't have any hardware of its own. It runs as a Perl
FCGI script on a web hotel. The web hotel serves a couple of thousand
websites on a cluster consisting of a single MySQL backend server and
multiple parallel Apache frontend servers that balance the load among
them. Susning.nu only has 1.8 million page views per month, and is
one of this web hotel's most heavily accessed websites, so it's not a
huge web hotel, but they are friendly and skilled and they run Linux.
To the questions "how to design the hardware", "how to run backups",
and "how to balance the load", my best answer is "I don't - my web
hotel does that for me - for $50 per month". All I do is to profile
and optimize the Perl script and SQL statements, so the site runs
fast.
--
Lars Aronsson (lars(a)aronsson.se)
Aronsson Datateknik -
http://aronsson.se/