Normally I don't like to flame, especially people I like, but I make exception for the point of emphathesis (yes, I am the problem with the Internet).
In response to http://develooper.com/talks/Real-World-Scalability-LA-PM-2007-r9.pdf
Ask has absolutley no idea what "real world scability" is. Here we have another case of a kid born in the 80s who didn't bother to study history before declaring a one of doing things to be the way of doing things.
Kids these days... driving economy cars with 4 cylindar, 1.4L engines with nothing custom but a loud muffler that makes them sound fast, and they think they are fast. They clone some of the superficial elements of a sports car but completely miss the point. So it is with Linux.
We build these massive data centers, mostly by accident, and we think we're hot shit. We mount the things in racks, but that's the only thing we do right.
Let me let you in on a little secret: "scalable" in the context of computing hardware has traditionally meant something very different. See, you used to buy a bunch of compute nodes and some interconnect hardware and cables and wind up with one computer that had vast amounts of RAMs and thousands of CPUs. You can buy SGI, Sun, Cray (and recently, HP or Alpha) machines and get one computer (spread across physical chases) with thousands of processors, terabytes of RAM, and petabytes of storage.
My father would tear down an engine so that the pisons were laying on the ground, and he'd overbore the cylindars, shave the piston heads, put in high lifting cams, and put it a blower on the thing, maybe, and eek mid to high 300s of horsepower out of a stock big block V8s. My generation has some concept of horse power and weight, and we know how to read a power curve graph. But our kids just drive stupid in four bangers and crash a lot. Sure, there are a few kids who do understand -- my point is when you put a bit of knowledge into the collective, it eventually dies of bitrot -- apparently within two generations it's completely dead. And such has already happened with "scalability".
As you're sitting there re-inventing the wheels of caching, partitioning, replication, and creating "Service Oriented Architecture", remember that your god damn mother fucking fathers solved the problem in a much more general, far less stupid way years ago. And the only reason you're not using it is you think you're hot shit running Linux.
Myth: High end server machines are just overpriced computers with funny processor architectures.
Reality: High end server machines have huge amounts of L3 cache (IBM POWER machines have 36megs of L3) and insane amounts of I/O just for the purpose of clustering machines (so that you can get one huge machine with thousands of processors and terabytes of RAM) (the SGI Altrix, their low-end x86 machine, does 96 gigabytes/second of "interconnect" I/O).
The priceses of these machines are not unreasonable for what you do get; the only question is whether your particular application calls for this hardware or not.
It's crap like this that hurts open source... when they just don't "get it". Either it makes us look like asses to people who *know* high availability and clustering, or else we wind up an open source solution in production that performs badly.
Ask's article is just bad all over... it's like I hired my 15 year old neighbor to design enterprise crap. Of course, I can't single out Ask... the whole "new Internet economy" threw out past wisdom and started from scratch. Even Linux threw out a very thoughtful implementation and replaced it with something arbitrary and ad hoc. MySQL threw out referential integrity and thrashed about for years before rediscovering it. (Seriously though, OpenMOSIX for Linux *does* do clustering, but if you buy a Linux machine from SGI or Cray, you'll get something that does interconnect I/O *before* the PCI bus, not on it.)
Here, read a little bit...