[openstack-dev] [nova] [placement] unresolved topics in resource providers/placement api
Jay Pipes
jaypipes at gmail.com
Fri Jul 29 19:41:25 UTC 2016
On 07/29/2016 02:31 PM, Chris Dent wrote:
> On Thu, 28 Jul 2016, Jay Pipes wrote:
>> The decision at the mid-cycle was to add a new
>> placement_sql_connection configuration option to the nova.conf. The
>> default value would be None which would mean the code in
>> nova/objects/resource_provider.py would default to using the API
>> database setting.
>
> I've been working on this with Roman Podoliaka. We've made some
> reasonable progress but I'm hitting a bump in the road that we
> may wish to make a decision about sooner than later. I mentioned
> this before but forgot to remember it as actually important and it
> got lost in the sturm und drang.
>
> When resource providers live in the api database they will be in
> there with the aggregates and the resource_provider_aggregates
> table, which looks essentially like this
>
> CREATE TABLE resource_provider_aggregates (
> resource_provider_id INTEGER NOT NULL,
> aggregate_id INTEGER NOT NULL,
> PRIMARY KEY (resource_provider_id, aggregate_id)
> );
>
> will make great sense: We can join across this to the aggregates
> table to get the aggregates or aggregate uuids that are associated
> with a resource provider.
>
> If we use a separate placement db for resource providers there's as
> yet no aggregate table to join with across that
> resource_provider_aggregates table.
>
> To deal with this do we:
>
> * Give up for now on the separate placement_sql_connection?
No.
> * Change resource_provider_aggregates to:
>
> CREATE TABLE resource_provider_aggregates (
> resource_provider_id INTEGER NOT NULL,
> aggregate_id VARCHAR(36) NOT NULL, # a uuid
> PRIMARY KEY (resource_provider_id, aggregate_id)
> );
Also no.
> in the migrations and models used by both the api and placement
> dbs?
>
> This could work because as I recall what we really care about is that
> there is an aggregation of some resource providers with some other
> resource providers, not the details of the Aggregate object.
>
> * resource_provider_aggregates as it was plus a new small aggregate
> id<->uuid mapping table.
Yes, this.
The integer ID values aren't relevant outside of the placement API. All
that matters is the UUID identifiers for aggregates and resource providers.
So, add a new aggregates table in the placement DB that simply contains
an autoincrementing ID and a uuid column and insert into that table when
the placement API receives a request to associate a resource provider to
an aggregate where the placement DB doesn't have a record of that UUID yet.
Best,
-jay
> * Hoops I don't want to think about for aggregates in both tables?
>
> * Some other solution I'm not thinking of.
>
> * Actually you're wrong Chris, this isn't an issue because [please
> fill in the blank here].
>
> A few of these seem rather less than great.
>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
More information about the OpenStack-dev
mailing list