Release Name: 3.4.0
Notes:
Rainbows 3.4.0 - minor updates and fixes
Rainbows! is an HTTP server for sleepy Rack applications. It is based on
Unicorn, but designed to handle applications that expect long
request/response times and/or slow clients.
* http://rainbows.rubyforge.org/
* rainbows-talk@rubyforge.org
* git://bogomips.org/rainbows.git
Changes:
SIGQUIT (graceful shutdown) now drops idle keepalive clients for
the concurrency models where maintaining an idle client is
relatively inexpensive: Coolio, CoolioThreadPool,
CoolioThreadSpawn, Epoll, EventMachine, XEpoll,
XEpollThreadPool, XEpollThreadSpawn.
Kgio.autopush now works properly for all multi-threaded
concurrency models (if you're using :tcp_nopush).
Changes:
.gitignore | 2 +
GIT-VERSION-GEN | 2 +-
lib/rainbows/client.rb | 2 +
lib/rainbows/configurator.rb | 4 +-
lib/rainbows/coolio/heartbeat.rb | 1 +
lib/rainbows/epoll.rb | 25 +-----
lib/rainbows/epoll/client.rb | 19 ++++-
lib/rainbows/epoll/response_pipe.rb | 2 +-
lib/rainbows/epoll/server.rb | 12 ++-
lib/rainbows/event_machine.rb | 12 +--
lib/rainbows/event_machine/try_defer.rb | 23 +++--
lib/rainbows/xepoll.rb | 7 +-
lib/rainbows/xepoll/client.rb | 15 +++-
lib/rainbows/xepoll_thread_pool.rb | 2 +-
lib/rainbows/xepoll_thread_pool/client.rb | 8 ++-
lib/rainbows/xepoll_thread_spawn.rb | 2 +-
lib/rainbows/xepoll_thread_spawn/client.rb | 6 +-
pkg.mk | 4 +-
t/large-file-response.ru | 3 +
t/t0043-quit-keepalive-disconnect.sh | 59 ++++++++++++++
t/t0044-autopush.sh | 120 ++++++++++++++++++++++++++++
t/test_isolate.rb | 4 +-
22 files changed, 270 insertions(+), 64 deletions(-)
commit 983722912028f35348c8ff276df48855281be715
Author: Eric Wong
Date: Sat May 21 03:02:09 2011 +0000
Rainbows 3.4.0 - minor updates and fixes
SIGQUIT (graceful shutdown) now drops idle keepalive clients for
the concurrency models where maintaining an idle client is
relatively inexpensive: Coolio, CoolioThreadPool,
CoolioThreadSpawn, Epoll, EventMachine, XEpoll,
XEpollThreadPool, XEpollThreadSpawn.
Kgio.autopush now works properly for all multi-threaded
concurrency models (if you're using :tcp_nopush).
commit e5eda7790806d6d7709d02db04c75f09340e9a24
Author: Eric Wong
Date: Sat May 21 03:01:50 2011 +0000
pkg.mk: update to the latest version
* locale fix for grep
commit 7bd77ef78055af5d5232d16f00568ce02b947ae0
Author: Eric Wong
Date: Fri May 20 18:23:50 2011 -0700
use and recommend sleepy_penguin 3.0.1
It's better under 1.9.3 (sleepy_penguin 3.0.1 was bogus)
commit 07cb79c14399a292ae2a50db007180941c758c69
Author: Eric Wong
Date: Fri May 20 18:23:50 2011 -0700
use and recommend sleepy_penguin 3.0.0
It's better under 1.9.3
commit 9009074ae535438696b706b4d6b8d4c72187c33e
Author: Eric Wong
Date: Fri May 20 18:15:30 2011 -0700
t0044: increase test reliability
commit f83fe5edb79e51616afcf2a9f991cfe153eabd48
Author: Eric Wong
Date: Fri May 20 15:44:48 2011 -0700
try_defer: enable documentation
It should hopefully give this more visibility even though it's
an internal feature.
commit 0b9b4edc63c0021e567c68137e1ee7f9e99ddcc5
Author: Eric Wong
Date: Fri May 20 18:13:21 2011 -0700
xepoll_thread_pool/client: improve autopush support
We need to trigger a recv() to uncork the response.
This won't affect fairness (much) since all recv()s
are non-blocking and a successful header parse will
put us in the back of the queue.
commit a5419a5fd57a231e40b7a3ba48a02cdef15909be
Author: Eric Wong
Date: Fri May 20 15:30:11 2011 -0700
.gitignore: add tags/TAGS files
Some folks use them.
commit f4b084225b7115efecfbfb2b5d16da1f1da5c39e
Author: Eric Wong
Date: Fri May 20 15:17:21 2011 -0700
add tests for Kgio autopush on Linux
We can support it fully for a subset of concurrency models where
we have full control over buffering and HTTP/1.1 keepalive
clients.
commit a396de855e291d27d43454618031432634fe7d37
Author: Eric Wong
Date: Fri May 20 14:24:14 2011 -0700
add test for SIGQUIT disconnect
This will only be supported for certain concurency models, but
it's probably good enough.
commit 5d5033afa9052dc0d60e743f07bc694f008182b3
Author: Eric Wong
Date: Fri May 20 14:22:37 2011 -0700
event_machine: disconnect idle clients at on SIGQUIT
Since it's cheap to maintain keepalive clients with EM, we need
a way of disconnecting them in a timely fashion on rare SIGQUIT
events.
commit bba079d8a605b546bc262e80234c3c233a386e44
Author: Eric Wong
Date: Fri May 20 18:58:04 2011 +0000
client: use kgio_write across the board
This should enable Kgio "autopush" support for ThreadSpawn,
ThreadPool, XEpollThreadSpawn, and XEpollThreadPool.
(still needs tests)
commit ea6d0eab436c78113f8a61e7fcc34db4117d14c0
Author: Eric Wong
Date: Fri May 20 09:19:51 2011 +0000
coolio* + *epoll*: drop keepalive clients on SIGQUIT
In concurrency models long keepalive times are cheap (and thus
more likely to be used), this allows Rainbows! to gracefully
shut down more quickly.
commit 90af18f6884857704d72fd6b2bb91718aad72117
Author: Eric Wong
Date: Thu May 19 23:54:59 2011 -0700
epoll/xepoll: more consistent client implementations
There's less logic in the server this way and easier
to potentially share code this way.
commit 5e4f790847198e1267b2fbd5decfa09e5cc3d618
Author: Eric Wong
Date: Tue May 17 17:38:12 2011 -0700
doc: recommend io_splice 4.1.1 or later
io_splice 4.1.1 works around issues with socket
buffers filling up pipe buffers on blocking splice.
See http://lkml.org/lkml/2009/1/13/478 for a better
explanation.
|