Re: WGLC: p1 MUST NOT pipeline until connection is persistent

On 05/01/2013 02:16 AM, Willy Tarreau wrote:
> On Wed, May 01, 2013 at 01:51:01AM -0600, Alex Rousskov wrote:
>> On 05/01/2013 01:40 AM, Willy Tarreau wrote:
>>> On Wed, May 01, 2013 at 01:34:12AM -0600, Alex Rousskov wrote:
>>>> I am still not sure why we are prohibiting retry pipelining on new
>>>> connections though. Why do we have to reuse an old connection if we want
>>>> to retry a failed pipeline?

>>> I don't remember, I believe it was just that if pipeline failed on a
>>> connection, you don't want to pipeline again on the new one, otherwise
>>> you can do that infinitely.

>> And if I use an old connection, the situation is guaranteed to be better
>> somehow?

>> The reasons a new connection may fail differ from the reasons an old
>> connection may fail, but both may fail, so I do not understand why we
>> are prohibiting one and requiring the other.

> No it's not that, it's that if you detect a failure on a connection where
> you pipelined, you should not attempt to pipeline again on the new connection
> since it will very likely end the same way. It's unrelated to the old
> connection being better at all.

If you are describing the true intent, the requirement would have been
something like "A client MUST NOT pipeline when retrying a failed
pipelined request" but the requirement is rather different:

> A client that assumes a persistent connection and pipelines
> immediately after connection establishment MUST NOT pipeline on a
> retry connection until it knows the connection is persistent.


It feels like the intent here is to say that a persistent connection has
more chances to remain persistent than a new connection has chances to
become persistent.


Cheers,

Alex.

Received on Wednesday, 1 May 2013 14:33:01 UTC