<tt><font size=2>Clint Byrum <clint@fewbar.com> wrote on 05/29/2014
07:52:07 PM:<br>
<br>
> I am writing to get some brainstorming started on how we might mitigate<br>
> some of the issues we've seen while deploying large stacks on Heat.
I am<br>
> sending this to the dev list because it may involve landing fixes
rather<br>
> than just using different strategies. The problems outlined here are<br>
> well known and reported as bugs or feature requests, but there may
be<br>
> more that we can do.<br>
> <br>
> ...<br>
> <br>
> Strategies:<br>
> <br>
> ...</font></tt>
<br><tt><font size=2>> <br>
> update-failure-recovery<br>
> =======================<br>
> <br>
> This is a blueprint I believe Zane is working on to land in Juno.
It will<br>
> allow us to retry a failed create or update action. Combined with
the<br>
> separate controller/compute node strategy, this may be our best option,<br>
> but it is unclear whether that code will be available soon or not.
The<br>
> chunking is definitely required, because with 500 compute nodes, if<br>
> node #250 fails, the remaining 249 nodes that are IN_PROGRESS will
be<br>
> cancelled, which makes the impact of a transient failure quite extreme.<br>
> Also without chunking, we'll suffer from some of the performance<br>
> problems we've seen where a single engine process will have to do
all of<br>
> the work to bring up a stack.<br>
> <br>
> Pros: * Uses blessed strategy<br>
> <br>
> Cons: * Implementation is not complete<br>
> * Still suffers from heavy impact of failure<br>
> * Requires chunking to be feasible<br>
</font></tt>
<br><tt><font size=2>I like this one. As I remarked in the convergence
discussion, I think the first step there is a DB schema change to separate
desired and observed state. Once that is done, failure on one resource
need not wedge a stack; non-dependent resources (like the peer compute
nodes) can still be created.</font></tt>
<br>
<br><tt><font size=2>This does not address the issue of putting a lot of
work in one process; that requires a more radical change.</font></tt>
<br>
<br><tt><font size=2>Regards,</font></tt>
<br><tt><font size=2>Mike</font></tt>
<br>
<br>