OpenStack Trove Essentials
上QQ阅读APP看书,第一时间看更新

Terminology

Let's take a look at some of the terminology that Trove uses.

Datastore

Datastore is the term used for the RDBMS or NoSQL database that Trove can manage; it is nothing more than an abstraction of the underlying database engine, for example, MySQL, MongoDB, Percona, Couchbase, and so on.

Datastore version

This is linked to the datastore and defines a set of packages to be installed or already installed on an image. As an example, let's take MySQL 5.5. The datastore version will also link to a base image (operating system) that is stored in Glance.

The configuration parameters that can be modified are also dependent on the datastore and the datastore version.

Instance

An instance is an instantiation of a datastore version. It runs on OpenStack Nova and uses Cinder for persistent storage. It has a full OS and additionally has the guest agent of Trove.

Configuration group

A configuration group is a bunch of options that you can set. As an example, we can create a group and associate a number of instances to one configuration group, thereby maintaining the configurations in sync.

Flavor

The flavor is similar to the Nova machine flavor, but it is just a definition of memory and CPU requirements for the instance that will run and host the databases.

Normally, it's a good idea to have a high memory-to-CPU ratio as a flavor for running database instances.

Database

This is the actual database that the users consume. Several databases can run in a single Trove instance. This is where the actual users or applications connect with their database clients.

The following diagram shows these different terminologies, as a quick summary. Users or applications connect to databases, which reside in instances. The instances run in Nova but are instantiations of the Datastore version belonging to a Datastore. Just to explain this a little further, say we have two versions of MySQL that are being serviced. We will have one datastore but two datastore versions, and any instantiation of that will be called an instance, and the actual MySQL database that will be used by the application will be called the database (shown as DB in the diagram).