Pipelining clarification

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Pipelining clarification

Jan Algermissen-3
Hi,

http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-16#section-7.1.2.2 states


"Clients MUST also be prepared to resend their requests
   if the server closes the connection before sending all of the
   corresponding responses."


Does that imply that a client needs to resend *all* of the pipelined requests if not all responses are received?

If so, this implies (for me at least) that the client cannot use a response of a pipelined request until all responses have successfully been received

Is that a correct interpretation?

Practically, this would limit the usability of pipelined requests in async contexts because the client needs to collect all response before using them. Hence the question: what is the rationale for needing to re-do *all* requests? Can't I just redo those requests that I did not receive until the pipelining got interrupted?



Jan

P.S. What would, BTW,  be the most appropriate place to discuss pipelining issues and ask questions?


Reply | Threaded
Open this post in threaded view
|

RE: Pipelining clarification

Eric Lawrence-4
That interpretation wouldn't make any sense. The notion is that the client must be prepared to resend any request *for which a response was not received*.

-Eric

-----Original Message-----
From: [hidden email] [mailto:[hidden email]] On Behalf Of Jan Algermissen
Sent: Monday, September 26, 2011 4:17 AM
To: HTTP Working Group
Subject: Pipelining clarification

Hi,

http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-16#section-7.1.2.2 states


"Clients MUST also be prepared to resend their requests
   if the server closes the connection before sending all of the
   corresponding responses."


Does that imply that a client needs to resend *all* of the pipelined requests if not all responses are received?

If so, this implies (for me at least) that the client cannot use a response of a pipelined request until all responses have successfully been received

Is that a correct interpretation?

Practically, this would limit the usability of pipelined requests in async contexts because the client needs to collect all response before using them. Hence the question: what is the rationale for needing to re-do *all* requests? Can't I just redo those requests that I did not receive until the pipelining got interrupted?



Jan

P.S. What would, BTW,  be the most appropriate place to discuss pipelining issues and ask questions?



Reply | Threaded
Open this post in threaded view
|

Re: Pipelining clarification

Brian Pane-2
It probably wouldn't hurt to adjust the wording to that section to
clarify the "for which a response was not received" intent. Would the
following phrasing be an improvement?

"A client that has issued pipelined requests MUST also be prepared to
resend any requests for which it has not received responses if the
server closes the connection before sending responses to all of the
requests."

Thanks,
-Brian

On Mon, Sep 26, 2011 at 8:08 AM, Eric Lawrence
<[hidden email]> wrote:

>
> That interpretation wouldn't make any sense. The notion is that the client must be prepared to resend any request *for which a response was not received*.
>
> -Eric
>
> -----Original Message-----
> From: [hidden email] [mailto:[hidden email]] On Behalf Of Jan Algermissen
> Sent: Monday, September 26, 2011 4:17 AM
> To: HTTP Working Group
> Subject: Pipelining clarification
>
> Hi,
>
> http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-16#section-7.1.2.2 states
>
>
> "Clients MUST also be prepared to resend their requests
>   if the server closes the connection before sending all of the
>   corresponding responses."
>
>
> Does that imply that a client needs to resend *all* of the pipelined requests if not all responses are received?
>
> If so, this implies (for me at least) that the client cannot use a response of a pipelined request until all responses have successfully been received
>
> Is that a correct interpretation?
>
> Practically, this would limit the usability of pipelined requests in async contexts because the client needs to collect all response before using them. Hence the question: what is the rationale for needing to re-do *all* requests? Can't I just redo those requests that I did not receive until the pipelining got interrupted?
>
>
>
> Jan
>
> P.S. What would, BTW,  be the most appropriate place to discuss pipelining issues and ask questions?
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Pipelining clarification

Mark Nottingham-2
In reply to this post by Jan Algermissen-3
On Mon, 26 Sep 2011 13:16:49 +0200, Jan Algermissen wrote:

> P.S. What would, BTW,  be the most appropriate place to discuss
> pipelining issues and ask questions?

This is the best place.

Cheers,

--
Mark Nottingham
http://www.mnot.net/

Reply | Threaded
Open this post in threaded view
|

Re: Pipelining clarification

Jan Algermissen-3
In reply to this post by Brian Pane-2

On Sep 26, 2011, at 5:27 PM, Brian Pane wrote:

> It probably wouldn't hurt to adjust the wording to that section to
> clarify the "for which a response was not received" intent. Would the
> following phrasing be an improvement?

Yes, sounds perfect. Though I cannot say, whether it is just me that has difficulties with the text..

Jan

>
> "A client that has issued pipelined requests MUST also be prepared to
> resend any requests for which it has not received responses if the
> server closes the connection before sending responses to all of the
> requests."
>
> Thanks,
> -Brian
>
> On Mon, Sep 26, 2011 at 8:08 AM, Eric Lawrence
> <[hidden email]> wrote:
>>
>> That interpretation wouldn't make any sense. The notion is that the client must be prepared to resend any request *for which a response was not received*.
>>
>> -Eric
>>
>> -----Original Message-----
>> From: [hidden email] [mailto:[hidden email]] On Behalf Of Jan Algermissen
>> Sent: Monday, September 26, 2011 4:17 AM
>> To: HTTP Working Group
>> Subject: Pipelining clarification
>>
>> Hi,
>>
>> http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-16#section-7.1.2.2 states
>>
>>
>> "Clients MUST also be prepared to resend their requests
>>   if the server closes the connection before sending all of the
>>   corresponding responses."
>>
>>
>> Does that imply that a client needs to resend *all* of the pipelined requests if not all responses are received?
>>
>> If so, this implies (for me at least) that the client cannot use a response of a pipelined request until all responses have successfully been received
>>
>> Is that a correct interpretation?
>>
>> Practically, this would limit the usability of pipelined requests in async contexts because the client needs to collect all response before using them. Hence the question: what is the rationale for needing to re-do *all* requests? Can't I just redo those requests that I did not receive until the pipelining got interrupted?
>>
>>
>>
>> Jan
>>
>> P.S. What would, BTW,  be the most appropriate place to discuss pipelining issues and ask questions?
>>
>>
>>
>