Date | Commit message (Collapse) |
|
We know exactly when to invalidate based on the delay :)
|
|
Zbatery sucks at user switching + USR2+QUIT reloads
|
|
Set "Cache-Control: no-transform" to prevent frontend proxies
from flushing data.
|
|
Hopefully people can learn to use the REST API
this way.
|
|
|
|
Portable changes:
* Raindrops are now resizable within the limits of system page size
* Raindrops::Middleware proxies +to_path+ in response bodies
* More documentation
Linux-only changes:
* Raindrops::LastDataRecv[1] Rack application
* Raindrops::Watcher[2] Rack application
* Raindrops::TCP_Info[3] class for capturing TCP connection stats
* IPv6 support for inet_diag
* faster inet_diag stats for multiple sockets
There is also a demo server running the Watcher and Middleware
components. It's capped to 30 concurrent users, so go easy on
it:
Raindrops::Watcher: http://raindrops-demo.bogomips.org/
Raindrops::Middleware: http://raindrops-demo.bogomips.org/_raindrops
[1] http://raindrops.bogomips.org/Raindrops/LastDataRecv.html
[2] http://raindrops.bogomips.org/Raindrops/Watcher.html
[3] http://raindrops.bogomips.org/Raindrops/TCP_Info.html
|
|
Those will cause Aggregate to raise Errno::EDOM
|
|
It takes too long
|
|
Apparently 1.8 Test::Unit doesn't like empty test classes
|
|
|
|
git is on 9418 and my cgit UNIX domain socket
|
|
Oops :x This was totally broken with the all-listener
filter.
|
|
No more splitting all TCP or all UNIX listeners
|
|
Whee!
|
|
nginx makes HTTP/1.0 requests and expects HTTP/1.1 responses
|
|
|
|
|
|
It does streaming!
|
|
It is more accurate than sleep and doesn't require calculating
times
|
|
More confusing for me, actually...
|
|
This matches behavior of the TCP version.
|
|
Sometimes we want more of them
|
|
getaddrinfo() needs to get a list of available interfaces
from the kernel with every single call (since ipv6 could've
been modprobed), so it's a waste of syscalls.
|
|
No need to waste resources on creating/destroying
a socket.
|
|
I thought my compiler would be smarter :<
|
|
The way we dump, we dump it all, it seems.
|
|
This means we can read multiple addresses at once,
even IPv6 ones.
|
|
It's not needed since we don't care to rebind sockets
|
|
It's slow, but at least it works.
|
|
No reason to have an extra method. This also speeds up
the multi-listener case for tcp_listener_stats since it
avoids expensive sendmsg() syscalls.
|
|
|
|
netlink is fast and predictable in response times, so permitting
interrupts would just complicate things and lead to errors.
|
|
Fewer places to check for errors, we think.
|
|
Be stricter about invalid inputs.
|
|
This is a work-in-progress and will probably be modified
before the next release.
|
|
64-bit counters are unnecessarily large for tracking
active or queued connections until we have IP_ROFLSCALE
support :>
|
|
Oops :x
|
|
Too hard to maintain.
|
|
We can't have negative values
|
|
We don't care for this address.
|
|
Oops, strings are always true :x
|
|
We're going to experiment with something...
|
|
Yes we love Linux more than other systems :>
|
|
OK, not to non-Unix but I'll never care :>
|
|
It's useful, yes.
|
|
raindrops_ext.c never existed :o
|
|
"Advanced" GCs are typically less aggressive and typically allow
much more memory to be used.
|
|
Oops, it could give the GC problems.
|
|
Raindrops is designed to work with forking servers after all.
|
|
This allows limited resizing of the Raindrops memory
area since we always over-allocate due to the required
page aligment for mmap.
It would be nice if mremap() worked with MAP_SHARED,
but it does not and triggers a bus error when attempting
to access the new area.
ref: https://bugzilla.kernel.org/show_bug.cgi?id=8691
|