[openstack-dev] [trove] configuration groups and datastores type/versions

Craig Vyvial cp16net at gmail.com
Wed Dec 11 16:52:58 UTC 2013


Configuration Groups is currently developed to associate the datastore
version with a configuration that is created. If a datastore version is not
presented it will use the default similar to the way instances are created
now. This looks like a way of associating the configuration with a
datastore because an instance has this same association.

Depending on how you setup your datastore types and versions this might not
be ideal.
Example:
Datastore Type | Version
-------------------------
Mysql          | 5.1
Mysql          | 5.5
Percona        | 5.5
-------------------------

Configuration      | datastore_version
-----------------------------------
mysql-5.5-config   | mysql 5.5
percona-5.5-config | percona 5.5
-----------------------------------

or

Datastore Type | Version
-------------------------
Mysql 5.1      | 5.1.12
Mysql 5.1      | 5.1.13
Mysql          | 5.5.32
Percona        | 5.5.44
-------------------------

Configuration      | datastore_version
-----------------------------------
mysql-5.1-config   | mysql 5.5
percona-5.5-config | percona 5.5
-----------------------------------


Notice that if you associate the configuration with a datastore version
then in the latter example you will not be able to use the same
configurations that you created with different minor versions of the
datastore.

Something that we should consider is allowing a configuration to be
associated with a just a datastore type (eg. Mysql 5.1) so that any
versions of 5.1 should allow the same configuration to be applied.

I do not view this as a change that needs to happen before the current code
is merged but more as an additive feature of configurations.


*snippet from Morris and I talking about this*

Given the nature of how the datastore / types code has been implemented in
that it is highly configurable, I believe that we we need to adjust the way
in which we are associating configuration groups with datastore types and
versions.  The main use case that I am considering here is that as a user
of the API, I want to be able to associate configurations with a specific
datastore type so that I can easily return a list of the configurations
that are valid for that database type (Example: Get me a list of
configurations for MySQL 5.6).   We know that configurations will vary
across types (MySQL vs. Redis) as well as across major versions (MySQL 5.1
vs MySQL 5.6).   Presently, the code only keys off the datastore version,
and consequently, if I were to set up my datastore type as MySQL X.X and
datastore versions as X.X.X, then you would be potentially associating a
configuration with a specific minor version such as MySQL 5.1.63.    Given
then, I am thinking that it makes more sense to allow a configuration to be
associated with both a datastore type AND and datastore version with
precedence given to the datastore type (where both attributes are either
optional – or at least one is required).  This would give the most
flexibility to associate configurations with either the type, version, or
both and would allow it to work across providers given that they are likely
to configure types/versions differently.


I'd like to hear how the community views this and bring up the conversation
now rather than later.


Thanks,

-Craig Vyvial
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131211/1522cb27/attachment.html>


More information about the OpenStack-dev mailing list