openstack team mailing list archive
-
openstack team
-
Mailing list archive
-
Message #02490
Re: OpenStack API, Reservation ID's and Num Instances ...
On May 23, 2011, at 10:15 AM, Jay Pipes wrote:
> /me wishes you were on IRC ;)
>
> Discussing this with Mark Wash on IRC...
>
I'll stop by :-)
> Basically, I'm cool with using a UUID-like pregenerated instance ID
> and returning that as a reservation ID in the 1.X API.
Cool.
> I was really
> just brainstorming about a future, request-centric 2.0 API that would
> allow for more atomic operations on the instance creation level.
>
Okay, I'll follow up.
> Cheers!
> jay
>
> On Mon, May 23, 2011 at 10:35 AM, Jorge Williams
> <jorge.williams@xxxxxxxxxxxxx> wrote:
>> Comments inline:
>>
>> On May 23, 2011, at 8:59 AM, Jay Pipes wrote:
>>
>>> Hi Jorge! Comments inline :)
>>>
>>> On Mon, May 23, 2011 at 9:42 AM, Jorge Williams
>>> <jorge.williams@xxxxxxxxxxxxx> wrote:
>>>> Hi Sandy,
>>>> My understanding (Correct me if i'm wrong here guys) is that creating
>>>> multiple instances with a single call is not in scope for the 1.1 API.
>>>
>>> Actually, I don't think we *could* do this without issuing a 2.0 API.
>>> The reason is because changing POST /servers to return a reservation
>>> ID instead of the instance ID would break existing clients, and
>>> therefore a new major API version would be needed.
>>
>> Why? Clients just see an ID. I'm suggesting that for single instances, the instanceID == the reservationID.
>> In the API you query based on Some ID.
>>
>> http://my.openstack-compute.net/v1.1/2233/servers/{Some unique ID}
>>
>>>
>>>> Same
>>>> thing for changing the way in which flavors work. Both features can be
>>>> brought in as extensions though.
>>>
>>> Sorry, I'm not quite sure I understand what you mean by "changing the
>>> way flavours work". Could you elaborate a bit on that?
>>
>> Sandy was suggesting we employ a method "richer than Flavors". I'll let him elaborate.
>>
>>>
>>>> I should note that when creating single instances the instance id should
>>>> really be equivalent to a reservation id. That is, the create should be
>>>> asynchronous and the instance id can be used to poll for changes.
>>>
>>> Hmm, it's actually a bit different. In one case, you need to actually
>>> get an identifier for the instance from whatever database (zone db?)
>>> would be responsible for creating the instance. In the other case, you
>>> merely create a token/task that can then be queried for a status of
>>> the operation. In the former case, you unfortunately make the
>>> scheduler's work synchronous, since the instance identifier would need
>>> to be determined from the zone the instance would be created in. :(
>>>
>>
>> If we make the instance ID a unique ID -- which we probably should. Why not also treat it as a reservation id and generate/assign it up front?
>>
>>>> Because
>>>> of this, a user can create multiple instances in very rapid succession.
>>>
>>> Not really the same as issuing a request to create 100 instances. Not
>>> only would the user interface implications be different, but you can
>>> also do all-or-nothing scheduling with a request for 100 instances
>>> versus 100 requests for a single instance. All-or-nothing allows a
>>> provider to pin a request to a specific SLA or policy. For example, if
>>> a client requests 100 instances be created with requirements X, Y, and
>>> Z, and you create 88 instances and 12 instances don't get created
>>> because there is no more available room that meets requirements X, Y,
>>> and Z, then you have failed to service the entire request...
>>>
>>
>>
>> I totally understand this. I'm just suggesting that since this is not is scope for 1.1 -- you should be able to launch individual instances as an alternative.
>>
>> Also, keep in mind that the all-or-nothing requires a compensation when something fails.
>>
>>
>>
>>>> Additionally, the changes-since feature in the API allows a user to
>>>> efficiently monitor the creation of multiple instances simultaneously.
>>>
>>> Agreed, but I think that is tangential to the above discussion.
>>>
>>> Cheers!
>>> jay
>>>
>>>> -jOrGe W.
>>>> On May 23, 2011, at 7:19 AM, Sandy Walsh wrote:
>>>>
>>>> Hi everyone,
>>>> We're deep into the Zone / Distributed Scheduler merges and stumbling onto
>>>> an interesting problem.
>>>> EC2 API has two important concepts that I don't see in OS API (1.0 or 1.1):
>>>> - Reservation ID
>>>> - Number of Instances to create
>>>> Typical use case: "Create 1000 instances". The API allocates a Reservation
>>>> ID and all the instances are created until this ID. The ID is immediately
>>>> returned to the user who can later query on this ID to check status.
>>>> From what I can see, the OS API only deals with single instance creation and
>>>> returns the Instance ID from the call. Both of these need to change to
>>>> support Reservation ID's and creating N instances. The value of the
>>>> distributed scheduler comes from being able to create N instances load
>>>> balanced across zones.
>>>> Anyone have any suggestions how we can support this?
>>>> Additionally, and less important at this stage, users at the summit
>>>> expressed an interest in being able to specify instances with something
>>>> richer than Flavors. We have some mockups in the current host-filter code
>>>> for doing this using a primitive little JSON grammar. So, let's assume the
>>>> Flavor-like query would just be a string. Thoughts?
>>>> -S
>>>>
>>>>
>>>> Confidentiality Notice: This e-mail message (including any attached or
>>>> embedded documents) is intended for the exclusive and confidential use of
>>>> the
>>>> individual or entity to which this message is addressed, and unless
>>>> otherwise
>>>> expressly indicated, is confidential and privileged information of
>>>> Rackspace.
>>>> Any dissemination, distribution or copying of the enclosed material is
>>>> prohibited.
>>>> If you receive this transmission in error, please notify us immediately by
>>>> e-mail
>>>> at abuse@xxxxxxxxxxxxx, and delete the original message.
>>>> Your cooperation is appreciated.
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~openstack
>>>> Post to : openstack@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~openstack
>>>> More help : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~openstack
>>>> Post to : openstack@xxxxxxxxxxxxxxxxxxx
>>>> Unsubscribe : https://launchpad.net/~openstack
>>>> More help : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>
>>
References
-
OpenStack API, Reservation ID's and Num Instances ...
From: Sandy Walsh, 2011-05-23
-
Re: OpenStack API, Reservation ID's and Num Instances ...
From: Jorge Williams, 2011-05-23
-
Re: OpenStack API, Reservation ID's and Num Instances ...
From: Jay Pipes, 2011-05-23
-
Re: OpenStack API, Reservation ID's and Num Instances ...
From: Jorge Williams, 2011-05-23
-
Re: OpenStack API, Reservation ID's and Num Instances ...
From: Jay Pipes, 2011-05-23