From c3e22e4c2ad11785b5355a98355fd31d709976d5 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Fri, 28 May 2010 04:03:32 +0000 Subject: 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. --- GIT-VERSION-GEN | 2 +- GNUmakefile | 2 +- README | 2 ++ lib/rainbows/const.rb | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/GIT-VERSION-GEN b/GIT-VERSION-GEN index 9160ae2..d8c4319 100755 --- a/GIT-VERSION-GEN +++ b/GIT-VERSION-GEN @@ -1,7 +1,7 @@ #!/bin/sh GVF=GIT-VERSION-FILE -DEF_VER=v0.92.0.GIT +DEF_VER=v0.93.0.GIT LF=' ' diff --git a/GNUmakefile b/GNUmakefile index 24726ae..1125e69 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -66,7 +66,7 @@ NEWS: GIT-VERSION-FILE $(RAKE) -s news_rdoc > $@+ mv $@+ $@ -SINCE = 0.91.1 +SINCE = 0.92.0 ChangeLog: LOG_VERSION = \ $(shell git rev-parse -q "$(GIT_VERSION)" >/dev/null 2>&1 && \ echo $(GIT_VERSION) || git describe) diff --git a/README b/README index b0ac444..51c32c8 100644 --- a/README +++ b/README @@ -24,6 +24,8 @@ For network concurrency, models we currently support are: * {FiberPool}[link:Rainbows/FiberPool.html] * {NeverBlock}[link:Rainbows/NeverBlock.html] * {RevThreadPool}[link:Rainbows/RevThreadPool.html] +* {WriterThreadPool}[link:Rainbows/WriterThreadPool.html] +* {WriterThreadSpawn}[link:Rainbows/WriterThreadSpawn.html] We have {many more on the way}[link:TODO.html] for handling network concurrency. Additionally, we also use multiple processes (managed by diff --git a/lib/rainbows/const.rb b/lib/rainbows/const.rb index bbfda70..6fee6e0 100644 --- a/lib/rainbows/const.rb +++ b/lib/rainbows/const.rb @@ -3,7 +3,7 @@ module Rainbows module Const - RAINBOWS_VERSION = '0.92.0' + RAINBOWS_VERSION = '0.93.0' include Unicorn::Const -- cgit v1.2.3-24-ge0c7