ChangeLog from git://git.bogomips.org/rainbows.git (v0.92.0..v0.93.0) commit c3e22e4c2ad11785b5355a98355fd31d709976d5 Author: Eric Wong Date: Fri May 28 04:03:32 2010 +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. commit f1cb1ce4e76ca13c9eb0bf8cfb4a51bd9f5a58c1 Author: Eric Wong Date: Sat May 29 04:20:25 2010 +0000 WriterThreadSpawn: fix stupid local variable error commit 93fc16377eca1a1d5103fd91a576ff6c469f4ab1 Author: Eric Wong Date: Fri May 28 03:58:22 2010 +0000 doc: update comparison I still have a hard time keeping track of what's capable of what. commit 49c45c6ea09464862779b09ad7f22c30977a2060 Author: Eric Wong Date: Fri May 28 03:42:15 2010 +0000 tests: t0005: fudge the file malloc limit a bit it's hard to make this test reliable, but try to add a small fudge factor based on the MRI default GC malloc limit. commit 86d5209d0ebdd597ffa19bff5f227ca10ba383c6 Author: Eric Wong Date: Fri May 28 03:07:37 2010 +0000 dev: isolate: bump cramp to 0.11 commit 371f05992110616412c57a26fb6688dc2111c65d Author: Eric Wong Date: Wed May 26 22:50:15 2010 +0000 writer_thread_spawn: worker_connections limits thread spawned This should be logical, since we keep the connection alive when writing in our writer threads. commit 904526129a2377306a735c73b26699583b3b99c5 Author: Eric Wong Date: Wed May 26 22:49:49 2010 +0000 thread_spawn: document why we sleep instead of Thread.pass commit 4ccaf0a931a0731d1dca2710b86864075eb511a1 Author: Eric Wong Date: Wed May 26 22:36:39 2010 +0000 writer_thread_pool: update documentation for new defaults commit 58661617ab802010ecbc45ce3afbca1d63cb9189 Author: Eric Wong Date: Wed May 26 22:20:57 2010 +0000 add WriterThreadSpawn concurrency model commit c6ecda097af9cc559b2d38b01ae23daf733b3786 Author: Eric Wong Date: Wed May 26 22:20:03 2010 +0000 gemspec: bump Unicorn dependency no major internal changes until 2.0.0+ commit b37fa6ad928fb2b5dc55126c5ad4caa55ee3193b Author: Eric Wong Date: Wed May 26 21:32:13 2010 +0000 writer_thread_pool: remove single thread optimization It's not worth the trouble and testability since having a single thread tends to bottleneck if there's a bad client. commit f741974675c066b245e781c0c248b1395188334b Author: Eric Wong Date: Sat May 22 22:47:34 2010 +0000 tests: ignore trash/ directory entirely This allows it to be a symlink to /dev/shm or similar commit e948380c2a28f12e7210130bc83fb0ae0e6fcac9 Author: Eric Wong Date: Thu May 20 14:22:08 2010 -0700 tests: chunked client_body_max_size fails with old curl curl < 7.18.0 did not check for errors when doing chunked uploads. Unfortunately some distros are slow moving and bundle ancient versions of curl. commit bfe34128aed4ec696bb939c19e86a742297af830 Author: Eric Wong Date: Thu May 20 11:48:28 2010 -0700 local.mk.sample: fix isolate 2.0.0 path :x commit ac92728df5a673076e3fedd1436cef7c24e534b5 Author: Eric Wong Date: Thu May 20 03:40:49 2010 -0700 tests: t0004: beef up test for kills since we don't set maximum time boundaries, just rely on the logs to properly log the dead processes. commit d1b2756e6a5b7b9e1c47861f230ec9effe6ca382 Author: Eric Wong Date: Thu May 20 03:27:06 2010 -0700 tests: t0004: disable upper limit check since we've already waited for time to elapse, there's no point in watching the upper limit here commit 94307f744608ad6fd4f8d0ab57d23cf405917b15 Author: Eric Wong Date: Thu May 20 03:06:41 2010 -0700 tests: t0005: minimize writes This test can cause a lot of I/O, especially when run in parallel. Just rely on the fixed rsha1 code to compute the SHA1 of the response. commit abc207b2918606867094f2820bab58223e99aac4 Author: Eric Wong Date: Thu May 20 03:05:36 2010 -0700 tests: fix sha1sum usage non-random_blob arguments weren't being taken into account correctly :x commit 9d17cc820044e797a12146730dc260e60302022a Author: Eric Wong Date: Thu May 20 02:53:22 2010 -0700 tests: t0005 - disable concurrency for this test slow test runners can buffer us and bloat memory usage unpredictably when tests are run under load commit 6048147422f99f654b8a400575c58d39351c4699 Author: Eric Wong Date: Wed May 19 20:15:15 2010 -0700 tests: t0007: robustness fix On busy sytems, this timing-sensitive test is likely to fail, so give it some extra slack commit d266f4da075b4b972ee97589ac58ce1d08022f84 Author: Eric Wong Date: Tue May 18 14:07:54 2010 -0700 doc: FAQ: clarify Rails support commit 48313f442f53dfdb4ba24bbb12fc91f5c47a24ec Author: Eric Wong Date: Mon May 17 11:36:56 2010 -0700 WriterThreadPool: default concurrency to 20 pools Idle threads are cheap enough and having responses queued up with a single slow client on a large response is bad. commit 2260d56329b036bcce7eb69831d3e480334d283c Author: Eric Wong Date: Fri May 14 18:12:51 2010 -0700 add WriterThreadPool concurrency model This is based on an idea I originally had for Unicorn but never implemented in Unicorn since the benefits were unproven and the risks were too high. commit 01ee5327c018f64fa4b6aa767c0328c56f699170 Author: Eric Wong Date: Fri May 14 15:52:58 2010 -0700 add Rainbows::QueuePool helper It'll be useful later on for a variety of things! commit 5f854e876ba55180936ebfc82002df9bd882a4ae Author: Eric Wong Date: Fri May 14 15:52:17 2010 -0700 test: do not let async-response run with Base commit 67662fe0714cbcc89d732d4a04df975b0de2ca36 Author: Eric Wong Date: Fri May 14 14:18:36 2010 -0700 update isolate config for Isolate 2.0.0 commit 65d5e99ee231624c66a26b70296a659d551c0266 Author: Eric Wong Date: Thu May 6 22:22:56 2010 -0700 dev: isolate: bump unicorn dependency