Release Name: 1.0.0
Notes:
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://git.bogomips.org/rainbows.git
Changes:
This release is merely a milestone in our evolving internal API.
Use of kgio may result in performance improvements under Ruby
1.9.2 with non-blocking I/O-intensive workloads.
The only bugfix is that SIGHUP reloads restores defaults on
unset settings. A similar fix is included in Unicorn 2.0.0
as well.
Changes:
GIT-VERSION-GEN | 2 +-
GNUmakefile | 2 +-
README | 2 +-
Rakefile | 10 +-
bin/rainbows | 35 ++--
lib/rainbows.rb | 22 +--
lib/rainbows/acceptor.rb | 26 ---
lib/rainbows/actor_spawn.rb | 42 ++--
lib/rainbows/app_pool.rb | 182 ++++++++---------
lib/rainbows/base.rb | 65 +------
lib/rainbows/byte_slice.rb | 17 --
lib/rainbows/client.rb | 9 +
lib/rainbows/configurator.rb | 76 ++++----
lib/rainbows/const.rb | 36 ++--
lib/rainbows/dev_fd_response.rb | 3 +-
lib/rainbows/error.rb | 76 ++++----
lib/rainbows/ev_core.rb | 213 ++++++++++----------
lib/rainbows/event_machine.rb | 383 +++++++++++++++++------------------
lib/rainbows/fiber.rb | 28 ++-
lib/rainbows/fiber/base.rb | 157 +++++++--------
lib/rainbows/fiber/io.rb | 209 ++++++++++++--------
lib/rainbows/fiber/io/compat.rb | 13 ++
lib/rainbows/fiber/io/methods.rb | 49 +++++
lib/rainbows/fiber/io/pipe.rb | 7 +
lib/rainbows/fiber/io/socket.rb | 7 +
lib/rainbows/fiber/rev.rb | 170 +---------------
lib/rainbows/fiber/rev/heartbeat.rb | 8 +
lib/rainbows/fiber/rev/kato.rb | 22 ++
lib/rainbows/fiber/rev/methods.rb | 55 +++++
lib/rainbows/fiber/rev/server.rb | 32 +++
lib/rainbows/fiber/rev/sleeper.rb | 15 ++
lib/rainbows/fiber_pool.rb | 68 +++----
lib/rainbows/fiber_spawn.rb | 49 ++---
lib/rainbows/http_server.rb | 168 ++++++++-------
lib/rainbows/max_body.rb | 54 +++---
lib/rainbows/never_block.rb | 7 +-
lib/rainbows/process_client.rb | 61 ++++++
lib/rainbows/queue_pool.rb | 41 ++--
lib/rainbows/read_timeout.rb | 28 +++
lib/rainbows/rev/client.rb | 23 +-
lib/rainbows/rev/core.rb | 5 +-
lib/rainbows/rev/thread.rb | 3 +-
lib/rainbows/rev_fiber_spawn.rb | 45 ++---
lib/rainbows/revactor.rb | 33 ++--
lib/rainbows/thread_pool.rb | 6 +-
lib/rainbows/thread_spawn.rb | 3 +-
lib/rainbows/writer_thread_pool.rb | 18 ++-
lib/rainbows/writer_thread_spawn.rb | 18 ++-
local.mk.sample | 14 +-
rainbows.gemspec | 6 +-
t/kgio-pipe-response.ru | 10 +
t/t0013-reload-bad-config.sh | 8 +-
t/t0014-config-conflict.sh | 8 +-
t/t0018-reload-restore-settings.sh | 53 +++++
t/t0035-kgio-pipe-response.sh | 70 +++++++
t/test-lib.sh | 25 +++
t/test_isolate.rb | 3 +-
57 files changed, 1505 insertions(+), 1295 deletions(-)
commit 9f185041fb7af4cda21ba2d547fd4d16d9b2e453
Author: Eric Wong
Date: Thu Oct 28 08:42:09 2010 +0000
Rainbows! 1.0.0 - internal cleanups
This release is merely a milestone in our evolving internal API.
Use of kgio may result in performance improvements under Ruby
1.9.2 with non-blocking I/O-intensive workloads.
The only bugfix is that SIGHUP reloads restores defaults on
unset settings. A similar fix is included in Unicorn 2.0.0
as well.
commit 015635f877084cc05a9e6e4c1430c70279d0a04e
Author: Eric Wong
Date: Thu Oct 28 08:40:12 2010 +0000
tests: avoid race conditions on reload tests
We need to ensure the old worker is really dead before sending
requests after reloading.
commit b06c6b3ac214bc598d499c994884113d5b106e90
Author: Eric Wong
Date: Thu Oct 28 08:29:53 2010 +0000
t0018: wait for old worker to be reaped
On busy machines, old workers may not shutdown quickly
enough and may still be processing requests.
commit f84f138233be0607b0151a5a28c3f9190ba336a2
Author: Eric Wong
Date: Thu Oct 28 08:20:37 2010 +0000
rev+event_machine: small cleanups with new parser API
These allow for small reductions in the amount of variables
we have to manage, more changes coming with later Unicorns.
commit c4579db76b9ed5b0286fad852e798e8a890f093c
Author: Eric Wong
Date: Thu Oct 28 02:17:25 2010 +0000
HUP reload restores defaults on unset settings
For consistency, changed settings are reset back to
their default values if they are removed or commented
out from the config file.
commit 83644e02068311c7ff9cdbc63efd4764d1518138
Author: Eric Wong
Date: Wed Oct 27 23:52:28 2010 +0000
use Unicorn 2.0.0 final
Unicorn 2.0.0 has CPU wakeup reductions.
commit 2b9503566759678c9fbd7b01d1b5f487854208db
Author: Eric Wong
Date: Tue Oct 26 21:36:02 2010 +0000
Rakefile: updates for prereleases
We do prereleases, now.
commit a47cd4a7f392a76357ed4f3e458797ae1f9c8f25
Author: Eric Wong
Date: Tue Oct 26 21:26:03 2010 +0000
Rainbows! 1.0.0pre1 - kinder, gentler I/O
Mostly internal changes for kgio (and Unicorn) integration.
There should be no (supported) user-visible changes from
Rainbows! 0.97.0. kgio should improve performance for
concurrency models that use non-blocking I/O internally,
especially under Ruby 1.9.2
commit 0298a6743f2cadf8c8e47a298c5b35505b74af46
Author: Eric Wong
Date: Tue Oct 26 21:20:45 2010 +0000
gemspec: bump development dependency of Isolate
Might as well go with the latest and greatest,
it has saner defaults at least.
commit 567e6ce5dba5ad2cca2cca8c64123e27939bff2b
Author: Eric Wong
Date: Tue Oct 26 21:13:10 2010 +0000
doc: RDoc updates
Once again we avoid documenting internals on the public
website and use code comments for other developers.
commit 894cb73887c106acc793f0317ee849ae215ead56
Author: Eric Wong
Date: Mon Oct 25 22:15:47 2010 +0000
reduce dependency on IO#write_nonblock
kgio_trywrite is superior if it is available.
commit 4ee6e0dafeb1b7af28fa90ae27c1a1a04aa8e852
Author: Eric Wong
Date: Sat Oct 23 00:42:04 2010 +0000
http_request: remove this (sub)class
It does not appear to be needed, for now, since the
parser and Unicorn::HttpRequest are one and the same.
commit 180485d49ea858f83ef2a28a9e07224aa514edc7
Author: Eric Wong
Date: Fri Oct 22 16:21:03 2010 -0700
unindent most files
This simplifies and disambiguates most constant resolution
issues as well as lowering our identation level. Hopefully
this makes code easier to understand.
commit 41145ed4d335718ac43aec9313b7571a12fe96ee
Author: Eric Wong
Date: Fri Oct 22 15:31:47 2010 -0700
local.mk.sample: remove testing under 1.9.1
Ruby 1.9.2 has been out for a while and is the stable
release nowadays.
commit b595ad7333ff85452b229674c6726e40d2cf7bb9
Author: Eric Wong
Date: Fri Oct 22 18:55:46 2010 +0000
README: update copyright year
This project is over 1 year old!
commit 4a568eeb7d17885579790d0ae004f04aa13479cb
Author: Eric Wong
Date: Fri Oct 22 02:50:09 2010 +0000
dev_fd_response: do not wrap for Fiber-aware IOs
Applications may use wait_readable-aware methods directly
to work with Rainbows!
commit 6d46978bdc8d2ee4263431ecdcada53389b12597
Author: Eric Wong
Date: Fri Oct 22 02:51:18 2010 +0000
fiber_{pool,spawn}: unindent
Reduces confusion for constant resolution/scoping rules
and lowers LoC.
commit 03806d2b44c2d3cee75258ee9e83d671e751baeb
Author: Eric Wong
Date: Fri Oct 22 02:38:40 2010 +0000
fiber_pool: no need for old Fiber::IO
Rainbows::Client takes care of the I/O wait/read-ability
for us already.
commit 15631717fce044fbad2f386a7b1c7daf4bdd83d2
Author: Eric Wong
Date: Thu Oct 21 16:25:39 2010 -0700
code shuffling for kgio
Despite the large number of changes, most of it is code
movement here.
commit d4a2b5dd2b85f4b2d3bb120ee1e1b0dde31bc25c
Author: Eric Wong
Date: Wed Oct 20 17:48:58 2010 -0700
unicorn 2.x updates + kgio
We get basic internal API changes from Unicorn,
code simplifications coming next.
commit a085ba3586756ac1f778d2862f75889de2449b0e
Author: Eric Wong
Date: Wed Oct 20 17:48:57 2010 -0700
http_server: more descriptive error for debugging
Sometimes we have stupid syntax or constant resolution
errors in our code.
commit ad821f70a2488a91f2be1ac53cb2e64f50743989
Author: Eric Wong
Date: Tue Sep 28 17:40:01 2010 -0700
start using kgio library
It removes the burden of byte slicing and setting file
descriptor flags. In some cases, we can remove unnecessary
peeraddr calls, too.
commit 11c75ec06ce72cea0c760161dc01a196500aa293
Author: Eric Wong
Date: Fri Sep 17 08:55:35 2010 +0000
event_machine: remove unnecessary "return"
Noise is bad.
|