Seems resonable

+1 to design summit discussion

Vish

On Mar 22, 2011, at 1:06 PM, Justin Santa Barbara wrote:

> Let's take a leadership position here and go with strings; we're not breaking 
> Amazon's API.  AWS will have to make the same changes when they reach our 
> scale and ambition :-)
> 
> We should also start engaging with client tools, because we're never going to 
> be 100% EC2 compatible.  At the least, our endpoints will be different.
> 
> I think we should discuss this at the Design Summit, and then make an effort 
> on this front as part of Diablo.
> 
> 
> 
> On Tue, Mar 22, 2011 at 12:58 PM, Vishvananda Ishaya <vishvana...@gmail.com> 
> wrote:
> Yes, that is what they say,  Unfortunately all of the ec2 tools expect the 
> current format that they are using to various degrees.
> 
> Some just need the proper prefix (euca2ools)
> Others need the prefix + hex (elasticfox, irrc)
> Others allow a string but limit it to 11 chars, etc.
> 
> So to keep compatibility we are stuck mimicking amazon's string version for 
> now.
> 
> Vish
> 
> On Mar 22, 2011, at 12:51 PM, Justin Santa Barbara wrote:
> 
>> EC2 uses xsd:string for their instance id.  I can't find any additional 
>> guarantees.
>> 
>> Here's a (second hand) quote from Amazon:
>> 
>> http://serverfault.com/questions/58401/is-the-amazon-ec2-instance-id-unique-forever
>> "Instance ids are unique. You'll never receive a duplicate id. However, the 
>> current format of the instance id is an implementation detail that is 
>> subject to change. If you use the instance id as a string, you should be 
>> fine."
>> 
>> So, strings it is then? :-)
>> 
>> 
>> 
>> On Tue, Mar 22, 2011 at 12:44 PM, Vishvananda Ishaya <vishvana...@gmail.com> 
>> wrote:
>> The main issue that drove integers is backwards compatibility to the ec2_api 
>> and existing ec2 toolsets.  People seemed very opposed to the idea of having 
>> two separate ids in the database, one for ec2 and one for the underlying 
>> system.  If we want to move to another id scheme that doesn't fit in a 32 
>> bit integer we have to provide a way for ec2 style ids to be assigned to 
>> instances, perhaps through a central authority that hands out unique ids.
>> 
>> Vish
>> 
>> On Mar 22, 2011, at 12:30 PM, Justin Santa Barbara wrote:
>> 
>>> The API spec doesn't seem to preclude us from doing a fully-synchronous 
>>> method if we want to (it just reserves the option to do an async 
>>> implementation).  Obviously we should make scheduling fast, but I think 
>>> we're fine doing synchronous scheduling.  It's still probably going to be 
>>> much faster than CloudServers on a bad day anyway :-)
>>> 
>>> Anyone have a link to where we chose to go with integer IDs?  I'd like to 
>>> understand why, because presumably we had a good reason.
>>> 
>>> However, if we don't have documentation of the decision, then I vote that 
>>> it never happened, and instance ids are strings.  We've always been at war 
>>> with Eastasia, and all ids have always been strings.
>>> 
>>> Justin
>>> 
>>> 
>>> 
>>> 
>>> On Tue, Mar 22, 2011 at 12:20 PM, Paul Voccio <paul.voc...@rackspace.com> 
>>> wrote:
>>> I agree with the sentiment that integers aren't the way to go long term.
>>> The current spec of the api does introduce some interesting problems to
>>> this discussion. All can be solved. The spec calls for the api to return
>>> an id and a password upon instance creation. This means the api isn't
>>> asynchronous if it has to wait for the zone to create the id. From page 46
>>> of the API Spec states the following:
>>> 
>>> "Note that when creating a server only the server ID and the admin
>>> password are guaranteed to be returned in the request object. Additional
>>> attributes may be retrieved by performing subsequent GETs on the server."
>>> 
>>> 
>>> 
>>> This creates a problem with the bursting if Z1 calls to Z2, which is a
>>> public cloud, which has to wait for Z3-X to find out where it is going be
>>> placed. How would this work?
>>> 
>>> pvo
>>> 
>>> On 3/22/11 1:39 PM, "Chris Behrens" <chris.behr...@rackspace.com> wrote:
>>> 
>>> >
>>> >I think Dragon got it right.  We need a zone identifier prefix on the
>>> >IDs.  I think we need to get away from numbers.  I don't see any reason
>>> >why they need to be numbers.  But, even if they did, you can pick very
>>> >large numbers and reserve some bits for zone ID.
>>> >
>>> >- Chris
>>> >
>>> >
>>> >On Mar 22, 2011, at 10:48 AM, Justin Santa Barbara wrote:
>>> >
>>> >> I think _if_ we want to stick with straight numbers, the following are
>>> >>the 'traditional' choices:
>>> >>
>>> >> 1) "Skipping" - so zone1 would allocate numbers 1,3,5, zone2 numbers
>>> >>2,4,6.  Requires that you know in advance how many zones there are.
>>> >> 2) Prefixing - so zone0 would get 0xxxxxxx, zone1 1xxxxxx.
>>> >> 3) Central allocation - each zone would request an ID from a central
>>> >>pool.  This might not be a bad thing, if you do want to have a quick
>>> >>lookup table of ID -> zone.  Doesn't work if the zones aren't under the
>>> >>same administrative control.
>>> >> 4) Block allocation - a refinement of #3, where you get a bunch of IDs.
>>> >> Effectively amortizes the cost of the RPC.  Probably not worth the
>>> >>effort here.
>>> >>
>>> >> (If you want central allocation without a shared database, that's also
>>> >>possible, but requires some trickier protocols.)
>>> >>
>>> >> However, I agree with Monsyne: numeric IDs have got to go.  Suppose I'm
>>> >>a customer of Rackspace CloudServers once it is running on OpenStack,
>>> >>and I also have a private cloud that the new Rackspace Cloud Business
>>> >>unit has built for me.  I like both, and then I want to do cloud
>>> >>bursting in between them, by putting an aggregating zone in front of
>>> >>them.  I think at that stage, we're screwed unless we figure this out
>>> >>now.  And this scenario only has one provider (Rackspace) involved!
>>> >>
>>> >> We can square the circle however - if we want numbers, let's use UUIDs
>>> >>- they're 128 bit numbers, and won't in practice collide.  I'd still
>>> >>prefer strings though...
>>> >>
>>> >> Justin
>>> >>
>>> >>
>>> >>
>>> >> On Tue, Mar 22, 2011 at 9:40 AM, Ed Leafe <e...@leafe.com> wrote:
>>> >>        I want to get some input from all of you on what you think is
>>> >>the best way to approach this problem: the RS API requires that every
>>> >>instance have a unique ID, and we are currently creating these IDs by
>>> >>use of an auto-increment field in the instances table. The introduction
>>> >>of zones complicates this, as each zone has its own database.
>>> >>
>>> >>        The two obvious solutions are a) a single, shared database and
>>> >>b) using a UUID instead of an integer for the ID. Both of these
>>> >>approaches have been discussed and rejected, so let's not bring them
>>> >>back up now.
>>> >>
>>> >>        Given integer IDs and separate databases, the only obvious
>>> >>choice is partitioning the numeric space so that each zone starts its
>>> >>auto-incrementing at a different point, with enough room between
>>> >>starting ranges to ensure that they would never overlap. This would
>>> >>require some assumptions be made about the maximum number of instances
>>> >>that would ever be created in a single zone in order to determine how
>>> >>much numeric space that zone would need. I'm looking to get some
>>> >>feedback on what would seem to be reasonable guesses to these partition
>>> >>sizes.
>>> >>
>>> >>        The other concern is more aesthetic than technical: we can make
>>> >>the numeric spaces big enough to avoid overlap, but then we'll have very
>>> >>large ID values; e.g., 10 or more digits for an instance. Computers
>>> >>won't care, but people might, so I thought I'd at least bring up this
>>> >>potential objection.
>>> >>
>>> >>
>>> >>
>>> >> -- Ed Leafe
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> Mailing list: https://launchpad.net/~openstack
>>> >> Post to     : openstack@lists.launchpad.net
>>> >> Unsubscribe : https://launchpad.net/~openstack
>>> >> More help   : https://help.launchpad.net/ListHelp
>>> >>
>>> >> _______________________________________________
>>> >> Mailing list: https://launchpad.net/~openstack
>>> >> Post to     : openstack@lists.launchpad.net
>>> >> Unsubscribe : https://launchpad.net/~openstack
>>> >> More help   : https://help.launchpad.net/ListHelp
>>> >
>>> >
>>> >_______________________________________________
>>> >Mailing list: https://launchpad.net/~openstack
>>> >Post to     : openstack@lists.launchpad.net
>>> >Unsubscribe : https://launchpad.net/~openstack
>>> >More help   : https://help.launchpad.net/ListHelp
>>> 
>>> 
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~openstack
>>> Post to     : openstack@lists.launchpad.net
>>> Unsubscribe : https://launchpad.net/~openstack
>>> More help   : https://help.launchpad.net/ListHelp
>> 
>> 
> 
> 

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to