Asynchronicity in D

dsimcha dsimcha at yahoo.com
Fri Apr 1 16:40:20 PDT 2011


On 4/1/2011 7:27 PM, Sean Kelly wrote:
> On Apr 1, 2011, at 2:24 PM, dsimcha wrote:
>
>> == Quote from Brad Roberts (braddr at puremagic.com)'s article
>>> I've got an app that regularly runs with hundreds of thousands of
>>> connections (though most of them are mostly idle).  I haven't seen it
>>> break 1M yet, but the only thing stopping it is file descriptor limits and
>>> memory.  It runs a very standard 1 thread per cpu model.  Unfortunatly,
>>> not yet in D.
>>> Later,
>>> Brad
>>
>> Why/how do you have all these connections open concurrently with only a few
>> threads?  Fibers?  A huge asynchronous message queue to deal with new requests
>> from connections that aren't idle?
>
> A huge asynchronous message queue.  State is handled either explicitly or implicitly via fibers.  After reading Brad's statement, I'd be interested in seeing a comparison of the memory and performance differences of a thread per socket vs. asynchronous model though (assuming that sockets don't need to interact, so no need for synchronization).

 From the discussions lately I'm thoroughly surprised just how 
specialized a field massively concurrent server programming apparently 
is.  Since it's so far from the type of programming I do my naive 
opinion was that it wouldn't take a Real Programmer from another 
specialty (though I emphasize Real Programmer, not code monkey) long to 
get up to speed.


More information about the Digitalmars-d mailing list