On 04/09/2019 10:14 AM, Chris Dent wrote:
On Tue, 9 Apr 2019, Jay Pipes wrote:
The problem with this implementation is that resource providers can belong to zero or multiple aggregates, of course. And a "shard" or "source partition" is clearly something that a provider only belongs to *one of* and *must* belong to only one.
I agree that aggregates may be a bad choice because of the option to belong to zero but we could control that above the db level if we cared to.
We currently control this in Nova above the DB level, as I mentioned in my original reply about how hacky aggregate -> availability zone handling is. I'd prefer less hacky approaches in placement, if possible.
Not making a vote for aggregates here, just pointing out that we have the power to do what we want, and aggregates provide an existing grouping model. And these are groups.
I don't view these as groups, though. Groups are many to many relationships. A thing can be in many groups. A group has many things. But in the case of a shard or partition, it's really a one to one thing in my opinion.
Do we want to enforce that any resource provider only belongs to one partition? If so, why? By calling them shards or partitions, then sure, that cardinality makes sense, but what happens when some bright bulb decides there is a monster inter-galactic storage service that can serve multiple clouds, transparently [1]? Do we want the data model to prevent that I'd prefer to have the data model express the explicit nature of a 1:1 relationship. It's simpler and easier to reason about.
There's a reason we said that for hierarchical resource providers, there can be only one parent provider, much to Mr. Mooney's dismay. Sure, we can try to bend our minds to support quantum entanglement and an alternative universe where there is no spoon. But if we do that, we'll end up with... well, with no spoon. And I like spoons. They are useful scoopers of both liquid and semi-solid materials. Attempting to enjoy a nice soup with a fork tends to spoil the experience. Best, -jay
[1] by way of quantum entanglement, you see...