21 messages in org.apache.httpd.devRe: Is async the answer| From | Sent On | Attachments |
|---|---|---|
| Akins, Brian | 18 Jan 2008 10:52 | |
| Justin Erenkrantz | 18 Jan 2008 11:16 | |
| Colm MacCarthaigh | 18 Jan 2008 11:20 | |
| Akins, Brian | 18 Jan 2008 11:27 | |
| Akins, Brian | 18 Jan 2008 11:31 | |
| Colm MacCarthaigh | 18 Jan 2008 12:07 | |
| Akins, Brian | 18 Jan 2008 13:17 | |
| Colm MacCarthaigh | 18 Jan 2008 13:29 | |
| Ruediger Pluem | 18 Jan 2008 14:30 | |
| Justin Erenkrantz | 18 Jan 2008 16:33 | |
| Niklas Edmundsson | 19 Jan 2008 03:53 | |
| Graham Leggett | 19 Jan 2008 04:45 | |
| Davi Arnaut | 19 Jan 2008 06:57 | |
| Jim Jagielski | 19 Jan 2008 07:04 | |
| Graham Leggett | 19 Jan 2008 08:02 | |
| Henrik Nordström | 19 Jan 2008 13:14 | |
| Henrik Nordström | 19 Jan 2008 13:19 | |
| Davi Arnaut | 19 Jan 2008 15:29 | |
| Graham Leggett | 20 Jan 2008 07:44 | |
| Akins, Brian | 22 Jan 2008 10:03 | |
| Akins, Brian | 22 Jan 2008 10:08 |
| Subject: | Re: Is async the answer![]() |
|---|---|
| From: | Henrik Nordström (hen...@henriknordstrom.net) |
| Date: | 01/19/2008 01:14:45 PM |
| List: | org.apache.httpd.dev |
fre 2008-01-18 klockan 16:17 -0500 skrev Akins, Brian:
Paul Q and I have been kicking around the idea that even if we go to a completely async core, etc. that modules could mark some hooks as "blocking" and they would run basically how they do today. (One day, Paul, I'll actually think about this more...)
In the end you need a bit of mixture between the models to work out. threads or even processes for complex processing or libraries outside your control, and async for the basic core to keep it lightweight in resources/request/connection.
There is quite a bit of research in programming models supporting mixed async/threaded/tasklet scheduling without forcing the programmer to know all details. Quite interesting reading if you haven't read those papers yet.
For example the tame approach (C++ preprocessor using libasync) used by OKWS and it's related cousin tamer (more lightweight library) is quite fun to work with, at least in theory.
Regarding CPU performance then you need a more complex workload than pure sendfile() shuffling of data to see much of a difference between threaded or async models. Especially if you look at smaller requests where the two almost diverge to the same model.. (N threads doing fast successive batch processing one request at a time with no wait time, or a event loop doing pretty much the same batching..).
Regards Henrik




