Re: [systemd-devel] [PATCH] Experimental socket process pool.

2013-10-29 Thread David Strauss
On Mon, Oct 28, 2013 at 11:30 AM, Lennart Poettering wrote: > So yeah, cool feature, and I'd be very happy to see this in PID 1, but I > am very sure we shouldn't merge this tool like this! Can I get some pointers on how to do it in PID 1? If I start them the same way as the semicolon delimiter f

Re: [systemd-devel] [PATCH] Experimental socket process pool.

2013-10-28 Thread Lennart Poettering
On Mon, 21.10.13 04:59, David Strauss (da...@davidstrauss.net) wrote: > > This daemon is a proof-of-concept that manages a process pool of > (usually) socket-activated child processes. It exploits the ability to > have multiple processes accept() on the same socket, allowing the > kernel to distr

Re: [systemd-devel] [PATCH] Experimental socket process pool.

2013-10-21 Thread David Strauss
On Mon, Oct 21, 2013 at 4:59 AM, David Strauss wrote: > I've already noticed that it doesn't work so well with multiple processes and > EPOLLIN to do > accept() callbacks (like in systemd-socket-proxyd), but I'm looking for > options there. Thanks to some helpful advice [1] on Stack Overflow an

Re: [systemd-devel] [PATCH] Experimental socket process pool.

2013-10-21 Thread David Strauss
On Mon, Oct 21, 2013 at 7:08 AM, Tom Gundersen wrote: > This is a cool feature. However, it seems to me that adding it to the core > makes much more sense, that way the children can be managed properly by > systemd as real services. What problems do you see with adding this to pid1? There's no in

Re: [systemd-devel] [PATCH] Experimental socket process pool.

2013-10-21 Thread Tom Gundersen
On Monday, October 21, 2013, David Strauss wrote: > This daemon is a proof-of-concept that manages a process pool of > (usually) socket-activated child processes. It exploits the ability to > have multiple processes accept() on the same socket, allowing the > kernel to distribute requests among th

Re: [systemd-devel] [PATCH] Experimental socket process pool.

2013-10-21 Thread David Strauss
Since there aren't docs yet, here's an example way to run it: ExecStart=/usr/lib/systemd/systemd-socket-process-poold /usr/lib/systemd/systemd-socket-proxyd example.com http systemd-socket-proxyd will complain about trying to accept() and failing because of the stampede issue I mentioned in my la

Re: [systemd-devel] [PATCH] Experimental socket process pool.

2013-10-21 Thread David Strauss
This daemon is a proof-of-concept that manages a process pool of (usually) socket-activated child processes. It exploits the ability to have multiple processes accept() on the same socket, allowing the kernel to distribute requests among the children. We've talked about adding this to systemd core,

[systemd-devel] [PATCH] Experimental socket process pool.

2013-10-21 Thread david
From: David Strauss --- .gitignore | 1 + Makefile.am| 13 ++ src/socket-process-pool/Makefile | 1 + src/socket-process-pool/socket-process-poold.c | 247 + src/socket-proxy/socket