about summary refs log tree commit homepage
path: root/TODO
DateCommit message (Collapse)
2009-07-01Force streaming input onto apps by default
This change gives applications full control to deny clients from uploading unwanted message bodies. This also paves the way for doing things like upload progress notification within applications in a Rack::Lint-compatible manner. Since we don't support HTTP keepalive, so we have more freedom here by being able to close TCP connections and deny clients the ability to write to us (and thus wasting our bandwidth). While I could've left this feature off by default indefinitely for maximum backwards compatibility (for arguably broken applications), Unicorn is not and has never been about supporting the lowest common denominator.
2009-06-30TrailerParser integration into ChunkedReader
Support for the "Trailer:" header and associated Trailer lines should be reasonably well supported now
2009-06-29ACK clients on "Expect: 100-continue" header
By responding with a "HTTP/1.1 100 Continue" response to encourage a client to send the rest of the body. This is part of the HTTP/1.1 standard but not often implemented by servers: http://www.w3.org/Protocols/rfc2616/rfc2616-sec8.html#sec8.2.3 This will speed up curl uploads since curl sleeps up to 1 second if no response is received: http://curl.haxx.se/docs/faq.html#My_HTTP_POST_or_PUT_requests_are
2009-06-07Update TODO
2009-05-03Safer timeout handling and test case
Timeouts of less than 2 seconds are unsafe due to the lack of subsecond resolution in most POSIX filesystems. This is the trade-off for using a low-complexity solution for timeouts. Since this type of timeout is a last resort; 2 seconds is not entirely unreasonable IMNSHO. Additionally, timing out too aggressively can put us in a fork loop and slow down the system. Of course, the default is 60 seconds and most people do not bother to change it.
2009-04-24SIGTT{IN,OU} {in,de}crements worker_processes
This allows dynamic tuning of the worker_processes count without having to restart existing ones. This also allows worker_processes to be set to a low initial amount in the config file for low-traffic deployments/upgrades and then scaled up as the old processes are killed off. Remove the proposed reexec_worker_processes from TODO since this is far more flexible and powerful. This will allow not-yet-existent third-party monitoring tools to dynamically change and scale worker processes according to site load without increasing the complexity of Unicorn itself.
2009-04-05Add test for :preload_app config option
2009-04-01Documentation updates, prep for 0.4.1 release
2009-03-29configurator: per-listener backlog, {rcv,snd}buf config
Instead of having global options for all listeners, make all socket options per-listener. This allows reverse-proxies to pick different listeners to get different options on different sockets. Given a cluster of machines (10.0.0.1, 10.0.0.2, 10.0.0.3) running Unicorn with the following config: ------------------ 8< ---------------- listen "/tmp/local.sock", :backlog => 1 listen "*:8080" # use the backlog=1024 default ------------------ 8< ---------------- It is possible to configure a reverse proxy to try to use "/tmp/local.sock" first and then fall back to using the TCP listener on port 8080 in a failover configuration. Thus the nginx upstream configuration on 10.0.0.1 to compliment this would be: ------------------ 8< ---------------- upstream unicorn_cluster { # reject connections ASAP if we are overloaded server unix:/tmp/local.sock; # fall back to other machines in the cluster via "backup" # listeners which have a large backlog queue. server 10.0.0.2:8080 backup; server 10.0.0.3:8080 backup; } ------------------ 8< ---------------- This removes the global "backlog" config option which was inflexible with multiple machines in a cluster and exposes the ability to change SO_SNDBUF/SO_RCVBUF via setsockopt(2) for the first time.
2009-03-29TODO: update roadmap to 1.0.0
2009-03-09update TODO
2009-02-11Update documentation
2009-02-09update version and changelog
2009-02-09Update TODO with Unicorn goals
Note: since we've stripped everything down to hell, we're Ruby 1.9 compatible at the moment. Also remove references to that new school stuff like JRuby and threads.
2009-01-31Todos.
2009-01-31TODO
2009-01-31Merge branch 'master' of git@github.com:fauna/mongrel
* 'master' of git@github.com:fauna/mongrel: Merge pivotal code. Moving toward using a logger instead of dumping to STDERR all over the place. TODO been did. No commands.
2009-01-31Added rack stuff to todo
2009-01-31TODO been did.
2009-01-31Merge branch 'master' of git@github.com:fauna/mongrel
* 'master' of git@github.com:fauna/mongrel: Did that.
2009-01-31Fixed todo
2009-01-31Did that.
2009-01-31TODO
2008-02-20TODO is now kept in the Trac milestones.
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/branches/stable_1-1@969 19e92222-5c0b-0410-8929-a290d50e31e9
2007-11-01oops... gems is quite necessary
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@865 19e92222-5c0b-0410-8929-a290d50e31e9
2007-11-01add TODO
git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@854 19e92222-5c0b-0410-8929-a290d50e31e9