On a related note yet slightly off-topic, someone I know is looking into using Drupal for a high-traffic site. They'll have at least 5 front-end servers running Drupal on top of a single database.
that is a high traffic site indeed. What are they trying to avoid by having 5 front ends - I'll assume total number of simultaneous http requests.
Most of their users use avatars and they wonder how to go about this. If user A uploads his avatar to server 1, it must become immediately visible on all 5 servers.
why? I'm trying to imagine a user interface where I would immediately see (or care) about a new face appearing in a gallery of thousands (my math is 200 simultaneous connections x 5 machines * some number that calcs the total number of "logged in users (who have done something in the last 15 minutes?).
Using rsync did not sound like a solution, as the other servers would have spawned a lot of 404s by the time the avatars are synced.
well how about trapping the 404, determining if it is caused by this problem, and then taking default action? I used rsync last november in a similar situation and was impressed at how efficient it was.
The obvious solution is to store the avatars in the database, but Drupal doesn't allow this and if it would, it would have a significant performance impact given there are pages with 100+ avatars.