[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Single-threading servers and select()
- From: skaller <skaller@...>
- Date: 23 Jan 2005 15:53:01 +1100
On Sun, 2005-01-23 at 12:35, David Burgess wrote:
> High performance commercial web servers such as zeus are minimally threaded
> and use non-blocking IO. The argument about non-blocking/single threaded versus
> blocking/multithreaded is settled by Web server benchmarks.
> Non-blocking wins the benchmarks. Non-blocking scales.
In reality, the arguments about blocking I/O and threads
are all peculiar to Unix -- how to take the C/Unix API
and work around the fact it was never designed to
do anything in real time. The *real* I/O on a decent
box is concurrent anyhow (using DMA etc) so the issue
isn't how to get asynch I/O .. but how to get rid of it.
This is what Unix does .. gets rid of asychronous I/O
because it is too hard to program with, and inefficient
in the time sharing batch processing environment Unix
was designed for.
So now we need real time performance, and we have
an unsuitable OS for doing it .. and people are
working hard to undo all the stuff the OS was
designed to do in the first place .. :)
John Skaller, mailto:email@example.com
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net