On Thu, 4 Oct 2007 17:08:49 +0900, Robert Klemme wrote:

>> Depends what you mean by "scaling".  When I think of scaling, I think of
>> tens or hundreds of thousands of servers running
>> AOL/eBay/Amazon/Google-style apps.  At that level, threads don't matter
>> much; what matters is that your app scales near-linearly with hardware
>> (what we used to call "dollar scalable").
>>
>> What do you mean by scaling?
> 
> To me "scaling" just means "adjusting to higher load".  What you have
> in mind seems a concrete solution to provide scaling but that's just
> one (albeit a very common one).

Sure; it also depends on what you mean by "higher load".  Threads help with
what they now call "vertical scaling" - bigger and bigger boxes.  Or,
rather, they *can* help, if you're I/O bound.  (So can adding processes,
but presumably threads have less overhead.) 

If you're CPU bound, splitting your operation into threads doesn't help any
more than just running more processes.

And, of course, bigger boxes are much more expensive than small boxes.  We
had some apps that used to run on 8-way or 16-way machines (ten years ago
when such a things was a rarity), but we spent a lot of development effort
rearchitecting them to run on more standard hardware, because that'd be
cheaper.

-- 
Jay Levitt                |
Boston, MA                | My character doesn't like it when they
Faster: jay at jay dot fm | cry or shout or hit.
http://www.jay.fm         | - Kristoffer