On 07 Feb 2014, at 6:26 PM, Jim Jagielski <j...@jagunet.com> wrote:

> Some kind of callback for each conn_rec, such that when we are
> "done" with it, it knows what do to (rejoin mod_proxy's pool,
> pool cleanup, whatever).
> 
> In some ways, the "slave" connection actually behaves like
> a router, between the request and the "real" connection...
> it would also be nice to remove the thread-specific stuff
> to this slave connection.

Hmmm…

In theory all conn_recs should be treated equally, it would be up to each 
connection to know and care about relationships each connection has with 
another connection, by adding appropriate filters.

I think the key thing is not make any assumptions that close any doors for 
functionality. For example, if there was an assumption that a slave connection 
existed as a child of a master connection, we would have the unfortunate 
property that we could never put the slave connection into a connection pool, 
or leave the slave going after the master had gone away for whatever reason.

Imagine if mod_proxy set up a backend connection or nabbed one from a 
connection pool, then added a set of filters to that backend connection and 
frontend connection that would glue the two conn_rec's together for some 
sensible lifetime. It would be the job of those filters to read from the one 
stack and then write to the other.

This enables some powerful event driven behaviour - mod_proxy can do all the 
potentially-blocking stuff like DNS and establishing the connections, add the 
glue filters, then say "my work here is done" and sit back and let the filter 
chains do their work asynchronously.

Regards,
Graham
--

Reply via email to