On 01/22/2015 02:36 PM, Avery Payne wrote:


It has been my feeling that the optimal service supervision scheme would eschew the concept of a dependency system completely, and instead rely on some form of lazy/delayed execution, performing heavy use of queueing with no explicit
dependency configurations whatsoever.
This is the existing supervision behavior. It's also quite messy as services struggle to get started until their own dependencies are met, and takes a little more time. All I'm doing is offering to bring order to the chaos, nothing more than that. And that offer is entirely optional.

I know inetd/ucspi-tcp can provide
this effect to a limited degree, but its use hasn't been too impressive thus far (systemd has overhyped it significantly). Alternative ideas still escape me, but I'm trying to research concepts from related fields like distributed systems (provisioning, service discovery, clusters, 9P/namespaces/Plan 9, so forth)
in the hope of coming up with something.

I'm having a hunch it'll involve setting up a way for daemons to communicate by a superserver through the use of a persistent data store (be it a file server, a task queue or whatnot). Starts to border on service discovery, but
simpler and more ad-hoc.

In general, the idea is to provide a mechanism for synchronization that will
displace dependencies, getting the same intended result.
I'd be interested to see the result. I'm not against using something else, and maybe something else will emerge. But for the moment, I have a pragmatic stance that is oriented towards getting people to want to use supervision.


To the best of my knowledge, existing supervision behavior has no queueing (unless you optionally integrate with s6-networking, nosh's accept/listen programs or some other ucspi-tcp/inetd variant) or any other form of lazy execution, and as I stated the
superserver approaches still remain underdeveloped and lacking.

My hypothetical scheme will likely be part of a new system, not as an add-on to an
existing one.

Reply via email to