$1000 Bounty for Features (or put my money where my mouth is ;)
ezmobius at gmail.com
Tue Mar 6 22:04:49 MSK 2007
On Mar 6, 2007, at 10:39 AM, Igor Sysoev wrote:
> On Wed, Feb 28, 2007 at 06:40:54PM -0800, Ezra Zygmuntowicz wrote:
>> We currently have 160 virtual servers all running nginx proxying to
>> mongrel clusters and nginx is in the heart of our architecture. I
>> wanted to offer to sponsor the development of 2 specific features
>> that we really would like to have in nginx.
>> I'd like to sponsor these features by donating $1000 US dollars to
>> your efforts. Nginx is my absolute favorite webserver and it is a
>> core part of our platform. These 2 features would make my life much
>> easier and would benefit anyone who uses Nginx and Mongrel together.
>> You would make me and a lot of others very happy people if we could
>> get these features supported.
>> 1. Connection rate limits for proxy backends.
>> Since Rails is not threadsafe and locks the Mongrel it runs in during
>> each dynamic request, it would be way better if we could limit the
>> connection rate per proxy backend. RIght now nginx will continue to
>> pile requests onto a mongrel even if it is busy causing requests to
>> queue up in threads in mongrel waiting for their turn to lock the
>> mutex and do a dispatch. I would much rather be able to set a
>> connection rate of 1 or 2 per mongrel and have the requests queue in
>> nginx, which is much more efficient since nginx is event driven.
>> 2. A way to turn off the buffering of file uploads so that backends
>> can handle the upload instead of nginx.
>> I had a serious problem yesterday when a corrupted .png file was
>> uploaded, I had 6 mongrel backends behind nginx, Nginx gave the
>> bad .png to the first Mongrel and the bad png plus some error in the
>> code caused a segfault in Mongrel. So then Nginx recovered and sent
>> the same png file to the next mongrel and it segfaulted and on and
>> on. So one bad file upload that caused mongrel to segfault made *all*
>> the mongrel backends segfault because it retried each backend.
>> I would really like a setting that that allows me to turn off the
>> buffering of file uploads altogether if I want. This would allow me
>> to handle upload progress in a backend as well as avert this problem
>> where a bad png file can cause nginx to serve the same file to all
>> backends, killing them all with segfaults. These segfaults are not
>> nginx's problem I realize but having an option to turn this off will
>> let me better handle this kind of thing.
>> Thanks for your time Igor, and many thanks for Nginx! I hope that
>> you will accept my offer ;)
> As I have promised I will implement non-bufferred uploads.
> The backend connections limits will be implemeted too - I had planned
> long ago.
> Igor Sysoev
Thank you Igor. I know you had already planned these features and I
just wanted to show my support for your great project.
-- Ezra Zygmuntowicz
-- Lead Rails Evangelist
-- ez at engineyard.com
-- Engine Yard, Serious Rails Hosting
-- (866) 518-YARD (9273)
More information about the nginx