I would be a little wary about the DB level locking for stuff like that — it’s 
certainly doable, but also comes at the expense of things behaving 
ever-so-slightly different from DBMS to DBMS.  Perhaps there are multiple 
“logical efforts” here—i.e., adding some APIs and cleaning up existing code.

In any case, I’ve started a blueprint on this [1] and we can continue iterating 
in the nova-spec once kilo opens up.  Thanks all for the good discussion on 
this thus far.

[1] https://blueprints.launchpad.net/nova/+spec/dynamic-server-groups

- Joe
On Sep 11, 2014, at 5:04 PM, Chris Friesen <chris.frie...@windriver.com> wrote:

> On 09/11/2014 03:01 PM, Jay Pipes wrote:
>> On 09/11/2014 04:51 PM, Matt Riedemann wrote:
>>> On 9/10/2014 6:00 PM, Russell Bryant wrote:
>>>> On 09/10/2014 06:46 PM, Joe Cropper wrote:
>>>>> Hmm, not sure I follow the concern, Russell.  How is that any different
>>>>> from putting a VM into the group when it’s booted as is done today?
>>>>>  This simply defers the ‘group insertion time’ to some time after
>>>>> initial the VM’s been spawned, so I’m not sure this creates anymore
>>>>> race
>>>>> conditions than what’s already there [1].
>>>>> 
>>>>> [1] Sure, the to-be-added VM could be in the midst of a migration or
>>>>> something, but that would be pretty simple to check make sure its task
>>>>> state is None or some such.
>>>> 
>>>> The way this works at boot is already a nasty hack.  It does policy
>>>> checking in the scheduler, and then has to re-do some policy checking at
>>>> launch time on the compute node.  I'm afraid of making this any worse.
>>>> In any case, it's probably better to discuss this in the context of a
>>>> more detailed design proposal.
>>>> 
>>> 
>>> This [1] is the hack you're referring to right?
>>> 
>>> [1]
>>> http://git.openstack.org/cgit/openstack/nova/tree/nova/compute/manager.py?id=2014.2.b3#n1297
>>> 
>> 
>> That's the hack *I* had in the back of my mind.
> 
> I think that's the only boot hack related to server groups.
> 
> I was thinking that it should be possible to deal with the race more cleanly 
> by recording the selected compute node in the database at the time of 
> scheduling.  As it stands, the host is implicitly encoded in the compute node 
> to which we send the boot request and nobody else knows about it.
> 
> Chris
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to