Re: FastCGI spec question

Bo Lindbergh <blgl-RP0AW3Mn+/hWk0Htik3J/[email protected]>
Newsgroups gmane.comp.web.fastcgi.devel
Message-ID <[email protected]>
2009-10-11 kl. 07.00 skrev David Bender:

> Hey,
>   I am working on a FastCGI implementation and encountered an  
> ambiguity in the spec.
>
> Section 4.1 says:
>
> #  FCGI_MAX_CONNS: The maximum number of concurrent transport  
> connections this
> application will accept, e.g. "1" or "10".
>
> # FCGI_MAX_REQS: The maximum number of concurrent requests this  
> application will
> accept, e.g. "1" or "50".
>
>  I am assuming that PER CONNECTION, the web server will use Request  
> Id range [1
> - FCGI_MAX_REQS] (Is this correct?).

There's no hard guarantee for the range.  The spec only says
"The Web server attempts to keep FastCGI request IDs small."

> Consequently, the application must then
> handle (FCGI_MAX_CONNS * FCGI_MAX_REQS) concurrent requests, which  
> violates the
> definition of FCGI_MAX_REQS.

FCGI_MAX_REQS is always per application, not per connection.
If the web server balances requests over connections, expect
FCGI_MAX_REQS/FCGI_MAX_CONNS concurrent requests per connection.

>  Or am I to assume that the web server partitions the Request ID  
> space among its
> active connections?

The request id space is always per connection, not per application.

> However there could be multiple web servers talking the same
> CGI app this would seem difficult to coordinate.

The spec doesn't address the case of multiple un-coordinated web
servers talking to the same application.  At a minimum, the application
would need to apply a scale factor: actually accepting N times
the number of connections/requests it claims to accept.


/Bo Lindbergh
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.