MaxScale and Filter plugins: how they can help to build flexible architectures

MariaDB MaxScale is now RC and together with all the MariaDB team that has been involved in the project we need to thank all the companies that agreed to become part of the MaxScale Beta Test Plan. This major step in the MaxScale life (read more here) had an important impact on the MaxScale QA process.

We have asked some companies to help us in testing MaxScale in “real” environments with different custom settings, different configurations and with traffic load as close to reality as possible.

Colt Engine, an Italian hosting company based in Turin (Italy) applied immediately. They have been a great fan of MariaDB MaxScale and have been enthusiastic early testers of MaxScale since early 2014 when it still was Alpha. Actually they have suggested some of the MaxScale filter plugins.

I started drafting a possible testing environment with them in November. In order to provide the best possible test environment they have been brave and taken the risk to test MaxScale in production on one of their non-critical projects.

The technical details of the ultimate test environment and the results of the testing activity will be described in future blog posts later this month, what I want to show in this post is some of the infinite possible ways in which MaxScale can help DBAs and Architects to solve several problems and easily design a flexible architecture.

Colt Engine is an ISP, and also the official Italian host provider for the Joomla! users they represent, in my opinion, one of the best kind of testers.

As an example, in Joomla! hosting environments, in most (if not all) of the cases they do not have a clue on what applications are running on their servers and how they are accessing the MariaDB or MySQL instances (they are now supporting both MariaDB and MySQL, but gradually moving all the servers to MariaDB). It’s not easy to forecast traffic loads or the number of connections a specific application will need at a certain point in time and how to manage and distribute them.

Some of the Joomla! plugins that are available, use deprecated statements or statements that have been altered (“TYPE =” versus “ENGINE=” in the CREATE TABLE statement, just to mention the most popular one).

In this particular case, MaxScale can filter all the deprecated statements and gives Colt Engine the flexibility to decide whether to send them to a specific server with a consistent MariaDB/MySQL release or, even better, replace the deprecated keyword (as in the example above) with the most updated syntax and keep all the servers aligned with the same version of database server.

It’s easy to understand that if you have to look after hundreds of servers, a consistent, replicated hence scalable and homogeneous database environment is definitely the way to go, However when this is not possible or during times of transition, MaxScale can give the flexibility to integrate different database releases and consistently route queries to specific servers according to specific rules.

Another part of the test environment involved a further important MaxScale filter: the Tee filter.

Actually as we will see in next post in this blog series, their specific usage of the Tee filter gave important feedback to our MaxScale engineers that, thanks to that, have been happy to refine the original Tee filter design and allow a more sophisticated usage of it.

Want to learn more about MariaDB MaxScale and how it can help your organization? Please visit MariaDB MaxScale Product Page.