[hunchentoot-devel] Re: Current development
Bob Hutchison
hutch-lists at recursive.ca
Sat Jun 14 15:11:52 UTC 2008
On 14-Jun-08, at 10:04 AM, Edi Weitz wrote:
> On Sat, 14 Jun 2008 07:21:05 +0200, Lars Rune Nøstdal <larsnostdal at gmail.com
> > wrote:
>
> The goal of the current development obviously is to make Hunchentoot
> more flexible and at the same time to give its users more rope to hang
> themselves. In the end, it will still be a web server, though, with
> an eye on simplicity and backwards compatibility, it won't become an
> all singing and dancing General Problem Solver. I hope you won't be
> disappointed.
Edi, you've set the expectations :-)
>
>
> (Just out of curiosity, are there general purpose web servers out
> there where one single request is not handled within one
> thread/process? I'm aware that Apache for example has a pretty
> sophisticated model of providing different ways of hooking into the
> request handling architecture. Still, I think, the thread that
> accepts the request will always be the one which is in charge of
> sending the reply and cleaning up, or am I wrong?)
My limited understanding of what they are doing is to separate socket
handling from the thread that does the work (in increasingly
sophisticated ways). So when a request comes a thread is assigned to
it, handles the request and returns to the pool of available threads.
The socket isn't necessarily closed (does HT handle keep-alive?) and
is somehow named if it is kept open. If you tie this in with threads/
processes that are independent of the request-handling task, you can
imagine one of these threads asking for a specific socket (or maybe a
bunch of them) that is still open and shoving something down the
socket/s, still not closing it/them. This also works with the new
fangled event driven server stuff. Apache, jetty, tomcat, and a bunch
of python, perl, and even a plugin for Rails (and <http://groups.google.com/group/symbolicweb
> for lisp). There are problems with doing this using long lived HTTP
connections (e.g. firewalls), but people are doing it, so...
I didn't really take this too seriously until someone managed to
comfortably handle many thousands (20000??) concurrent comet
connections (the article went through what was done to achieve this
number). It was nicely documented in an article, that, naturally, I
can't find at the moment. I think this article might talking about the
same thing, but it is certainly talking of 20000 connections, but it
is mostly just reporting it:
<http://cometdaily.com/2008/01/07/20000-reasons-that-comet-scales/>.
This is possible useful:
<http://ajaxexperience.techtarget.com/assets/documents/Carter_Michael_ScalableComet.pdf
>
Cheers,
Bob
>
> _______________________________________________
> tbnl-devel site list
> tbnl-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/tbnl-devel
More information about the Tbnl-devel
mailing list