<tt><font size=2>Let me add one more thing:<br>
<br>
> Now let us consider how to evolve the Nova API so that a server-<br>
> group can be scheduled holistically.  That is, we want to enable
the<br>
> scheduler to look at both the group's policies and its membership,
<br>
> all at once, and make a joint decision about how to place all the
<br>
> servers (instances) in the group.  There is no agreed answer
here <br>
> yet, but let me suggest one that I hope can move this discussion <br>
> forward.  The key idea is to first associate not just the policies
<br>
> but also a description of the group's members with the group, then
<br>
> get the joint scheduling decision made, then let the client <br>
> orchestrate the actual creation of the servers.  This could be
done <br>
> with a two-step API: one step creates the group, given its policies
<br>
> and member descriptions, and in the second step the client makes the<br>
> calls that cause the individual servers to be made; as before, each
<br>
> such call includes a reference to the group --- which is now <br>
> associated (under the covers) with a table that lists the chosen <br>
> placement for each server.  The server descriptions needed in
the <br>
> first step are not as extensive as the descriptions needed in the
<br>
> second step.  For example, the holistic scheduler would not care
<br>
> about the user_data of a server.  We could define a new data
<br>
> structure for member descriptions used in the first step (this would<br>
> probably be a pared-down version of what is used in the second step).
<br>
</font></tt>
<br><tt><font size=2>There really should be one more step in that flow.
 Consider a create scenario.  In general, as the client makes
the calls to create individual resources: some will succeed, some will
fail (some in ways that make it clear the capacity will not be used, others
not), for some the client will issue the request but timeout waiting for
success, and for some the client will never even issue the call to create.
 After the client has done as much as it will, there should be another
call back to the holistic scheduling function to release the capacity that
was planned to be used but the client has given up on.</font></tt>
<br>
<br><tt><font size=2>Regards,</font></tt>
<br><tt><font size=2>Mike</font></tt>