Re: GOAWAY and proxies

Can't the proxy just issue RST_STREAM toward its clients for all the
affected requests if it can't tolerate the memory hit?  REFUSED_STREAM
seems like the right code there.

RST_STREAM will cause an end-to-end retry, if anything, which is
slower.  But retrying requests is a feature that the proxy optionally
provides, and if it can't tolerate the costs of providing the feature,
then maybe it can do something to avoid taking on that cost.

On 10 April 2014 14:56, Daniel Sommermann <dcsommer@fb.com> wrote:
> In our implementation experience, GOAWAY as specified today is not an ideal
> mechanism for graceful shutdown. When there is high RTT between a proxy and
> the server, many requests may be in flight when the server generates a
> GOAWAY. For clients, it seems the solution is to reissue the request. The
> same strategy doesn't work for proxies. A proxy would have to buffer the
> headers and body of all requests until it sees the beginning of a response
> just in case a GOAWAY is received from the server. This is obviously not
> ideal as it puts high memory requirements on the proxy for a rare case.
>
> The server could implement some workarounds like "pre-acking" some number of
> streams in its GOAWAY just in case there are some in flight requests, but
> this doesn't seem like a great solution.
>
> Is there a way we can improve GOAWAY so that proxies can issue zero errors
> during a server restart and stay safe from a memory usage perspective? I'd
> be interested to hear others' implementation experience on this topic.
>

Received on Thursday, 10 April 2014 22:09:57 UTC