You'll notice that I said "multi-(task|thread)ing" originally. Cooperative multi-threading libraries do exist, and I do know of a couple systems build using them, but cooperative multi-tasking, in the form of event-driven state machines are much more common.
BTW, how many requests per second does your "really high-performance" pre-forked server handle? | [reply] |
You'll notice that I said "multi-(task|thread)ing" originally.
Yup, I did. I thought it sounded dumb considering that "cooperative multi-threading" is basically extinct and hardly applicable to high-performance servers.
BTW, how many requests per second does your "really high-performance" pre-forked server handle?
I don't know off the top of my head. But why ask me? Most of the websites on the internet today use Apache, and thus a pre-forked process model. Ask Amazon or Ticketmaster how they're doing under load, they're both Apache/mod_perl users last I heard.
-sam
| [reply] |
| [reply] |
I don't know off the top of my head. But why ask me? Most of the websites on the internet today use Apache, and thus a pre-forked process model. Ask Amazon or Ticketmaster how they're doing under load, they're both Apache/mod_perl users last I heard.
Amazon and Ticketmaster are great success stories for mod_perl, no question about it. But, from what I know of the systems, their individual servers are not what I would call "really high performance". Nor, for that matter, are most of the web sites on the internet (sort of by definition).
To give some context, for me "really high performance" is the world from around 10000 qps and up. Come to my talk at YAPC or OSCON this summer and I'll be happy to talk about some of the techniques we use to build systems like this.
(To be really fair to Amazon and Ticketmaster, their applications are significantly more challenging to get crazy performance out of. Please don't take this as any criticism of them.)
| [reply] |