MariaDB  is a community-developed fork of MySQL licensed under GNU GPL.
It aims to maintain high compatibility with MySQL, ensuring a “drop-in” replacement capability with library binary equivalency and exact matching with MySQL APIs and commands.
MariaDB versioning follow the MySQL’s versioning scheme up to version 5.5. Thus, MariaDB 5.5 offers all of the MySQL 5.5 features. After the 5.5 version, MariaDB developers decided to start a branch numbered 10, as an attempt to make it clear that specific new features have been developed in MariaDB 10 that are not included in MySQL 5.6.
Currently, Trove has support for MySQL but not for MariaDB in particular. This could be easily fixed for MariaDB 5.5 by just adapting the main configuration file (my.cnf). But in the case of MariaDB 10, this will no-longer be so straightforward.
With this in mind, and the fact that several GNU/Linux distributions are adopting MariaDB as the default MySQL implementation, it seems important to add support for this datastore.
To add support for this datastore, we will need the following:
- Implement instance management for the datastore:
- Launch new instance
- Terminate instance
- Reboot instance
- Resize instance
- Implement user and database management for the datastore:
- CRUD users
- CRUD databases
- Add new elements in trove-integration project to enable the creation of Ubuntu/Fedora images with MariaDB
In this first approach, it makes sense to take profit of the MySQL Refactor spec  and inherit as much as possible from the MySQL implementation, providing a cleaner way to launch MariaDB 5.5 instances.
In a follow up spec, differences in implementation will be tackled (e.g. a GTID based replication strategy  for MariaDB 10 will be proposed) and we would be able to provide support for MariaDB newer versions.
A new configuration group for MariaDB and the different configuration options specific to MariaDB have to be added to trove/common/cfg.py
Some of the examples for the configuration options are:
These changes will not affect the behavior of the guestagent or its interaction with other components.
Do not support MariaDB.
[*] This items rely on the MySQL Manager Refactor spec  and in the first iteration it will only require inheriting from the MySQL existing implementation.
- Create/Delete MariaDB instances
- Resize MariaDB instances
- Which MariaDB version is supported
- Trove capabilities for MariaDB datastore
- Instructions to build guest MariaDB images using trove-integration elements