Re: [PATCH] ICAP pconn optimization

From: Alex Rousskov <rousskov_at_measurement-factory.com>
Date: Wed, 15 Jun 2011 14:07:28 -0600

On 06/14/2011 08:43 PM, Amos Jeffries wrote:
> ICAP services use a "service" model of pconn different from the "TCP
> destination" model which PconnPool objects are designed for.
>
> This patch alters Adaptation::Icap::ServiceRep to use the simpler
> IdleConnList object for pconn storage. IdleConnList stores a "set of
> idle connections" more compatible with the ICAP model.
>
> In order to implement ICAP max-connections feature the closeN()
> operation is added to IdleConnList.
>
> The result is removal of the complex hash and management operations on
> push/pop of the idle conn set.

> === modified file 'src/adaptation/icap/ServiceRep.cc'
> - int connection = theIdleConns.pop(..., retriableXact);
> + int connection = theIdleConns.findUseableFD();

The pop() method does not allow reuse of connections when the
transaction cannot be retried. It also prevents the number of idle
connections from growing uncontrollably when many transactions cannot be
retried.

As far as I can see, the new ICAP code lost those two critical pieces of
pconn management logic by calling findUseableFD() directly. Please redo.

Thank you,

Alex.
Received on Wed Jun 15 2011 - 20:08:35 MDT

This archive was generated by hypermail 2.2.0 : Thu Jun 16 2011 - 12:00:04 MDT