v0.93.0
tag57b4b3d7d7b6cd37f9e072681224b25492a68ac1
object c3e22e4c2ad11785b5355a98355fd31d709976d5
authorEric Wong <normalperson@yhbt.net>
Sat, 29 May 2010 06:20:22 +0000 (29 06:20 +0000)
Rainbows! 0.93.0 - MOAR!!!1

In our race to have more concurrency options than real sites
using this server, we've added two new and fully supported
concurrency models: WriterThreadSpawn and WriterThreadPool

They're both designed to for serving large static files and work
best with IO.copy_stream (sendfile!) under Ruby 1.9.  They may
also be used to dynamically generate long running, streaming
responses after headers are sent (use "proxy_buffering off" with
nginx).

Unlike most concurrency options in Rainbows!, these are designed
to run behind nginx (or haproxy if you don't support POST/PUT
requests) and are vulnerable to slow client denial of service
attacks.

I floated the idea of doing something along these lines back in
the early days of Unicorn, but deemed it too dangerous for some
applications.  But nothing is too dangerous for Rainbows!  So
here they are now for your experimentation.