On Mon, 18 Jul 2005, Michal Kosek wrote: > Implementation issues > > Dispatcher > > It would be best to make dispatcher single-threaded, I suppose that > creating separate thread for each connection would take much more > resources. OTOH it may cause some problems. One I am currently > aware of is mod_ssl, which AFAIK doesn't currently have non-blocking > API. Would it be difficult to create such API? > > I want dispatcher to be as simple as possible, and make workers do > all the work (filters, handlers, etc.). Of course, as dispatcher > must read Host header, it must use connection filters. > > This headers is needed, because dispatcher has to decide to which > worker a connection should be redirected. I think that it would be > best if it didn't do full header parsing, but just look for virtual > host name. > > There are two ways of dispatching connection: > - passing a socket descriptor (along with data that were already > read) to the appropriate worker, > - acting as a proxy, redirecting data to the appropriate worker.
I understand you favour the proxy solution. That seems to mean that the elapsed time from the dispatcher accepting a request to being finished with it is the entire request duration, including the overhead of your architecture. Isn't that quite expensive, in terms of requiring a whole bunch of dispatcher processes? -- Nick Kew