On Tue, 21 Apr 2015 16:52:39 -0700
Avery Payne <avery.p.pa...@gmail.com> wrote:


> Dependency handling "with guarantee" means there is some means by
> which the child service itself signals "I'm fully up and running",
> vs. "I'm started but not ready".  Because there is no polling going
> on, this allows the start-up of the parent daemon to sleep until it
> either is notified or times out.  And you get a "clean" start-up of
> the parent because the children have directly signaled that "we're
> all ready".
> 
> Dependency handling "without guarantee" is what my project does as an 
> optional feature - it brings up the child process and then calls the 
> child's ./check script to see if everything is OK, which is polling
> the child (and wasting CPU cycles).  This is fine for "light" use
> because most child processes will start quickly and the parent won't
> time out while waiting.  

I really like the ./check method. I don't need to make any assumptions
about the startup behavior of the the dependency. I have all sorts of
./run scripts in my daemontools looking like:

if ! ping -q -c1 8.8.8.8 > /dev/null; then
  echo failed ping test on $pingaddr
  sleep 3
  echo "Bailing til next time"
  exit 1
fi

I personally get to choose what I consider to be "operational" for a
dependency.

> There are trade-offs for using this
> feature.  First, ./check scripts may have unintended bugs, behaviors,
> or issues that you can't see or resolve, unlike the child directly
> signalling that it is ready for use.  Second, the polling approach
> adds to CPU overhead, making it less than ideal for mobile computing
> - it will draw more power over time.  Third, there are edge cases
> where it can make a bad situation worse - picture a heavily loaded
> system that takes 20+ minutes to start a child process, and the
> result being the parent spawn-loops repeatedly, which just adds even
> more load.  

I think the three tradeoffs you listed above are three variations on
the same theme: One or more dependency services take too long to start.
My first thought is whether you want a service like that on your
computer at all.





SteveT

Steve Litt 
April 2015 featured book: Twenty Eight Tales of Troubleshooting
http://www.troubleshooters.com/28


Reply via email to