New supervisor restart strategy
Fri Jan 30 12:24:20 CET 2004
Thinking more about this, there is still one problem. All the dynamic
children in this second level supervisor will still be affected by one of
them misbehaving. Imagine a scenario where each child process is handling
one TCP connection. If one of them is misbehaving, we dont want the rest of
them to be affected. How would you achieve this using existing supervisor
> From: Vance Shipley <vances@REDACTED>
> Organization: Motivity Telecom Inc.
> Date: Thu, 29 Jan 2004 14:37:17 -0500
> To: Chandrashekhar Mullaparthi <chandrashekhar.mullaparthi@REDACTED>
> Cc: erlang-questions@REDACTED
> Subject: Re: New supervisor restart strategy
> Why not just add another level in the tree? Dynamically add a
> supervisor with a temporary restart strategy and put the worker
> under it as a transient and set MAXR & MAXT appropriately.
> On Thu, Jan 29, 2004 at 06:58:42PM +0000, Chandrashekhar Mullaparthi wrote:
> } safe_transient: child process should be restarted only if it terminates
> } abnormally, but should NOT be restarted if the max number of restarts has
> } been reached.
> } This will leave all other children of the supervisor and the supervisor
> } itself unaffected. This would only be applicable for the one_for_one
> } strategy.
> } This will be useful in the case where a lot of worker processes are added
> } the supervision tree dynamically and one of them goes into a cyclic
> } Thoughts?
> } cheers
> } Chandru/Sean
More information about the erlang-questions