There are a lot of reasons to use so many machines. You start hitting performance bottlenecks if you only have one machine. A lot of it is I/0 on the disks, since people are asking for different stuff. You can cache the common searches, but you still have an I/0 problem on each new request.
Additionally, if you have 50,000 requests coming in at the same time, you need to break those requests up among different machines, especially if all of them are searches (cgi-type calls).
You also need to break up your database into balanced chunks, to improve performance, and that is a whole technology unto itself.
Also, by using many machines, if any one machine, switch or bank dies, the rest of the network still runs, with calls being routed past the dead zone.
On top of that, if you have a lot of machines fielding calls, the number of calls hitting any one machine are going to be small, meaning that machine isn't going to have to use disk to cache processes, isn't going to have an I/0 bottleneck, and won't have a general resource depletion state occuring at any given time.
One image, is imagine an arena, with only one main entrence and exit point. One set of access stairways or ramps, one path for everything to get in and out of.
Imagine the same arena, if there were 4 sets of ramps, and 8 entrance and exit points.
It's more complicated to set up initially, but in operation, it runs much smoother, since people aren't all trying to use the same doors, ramps, and space.
PUGDOGŪ Enterprises, Inc.
FAQ:
http://LinkSQL.com/FAQ Forum:
http://LinkSQL.com/forum