MariaDB says its newly-released MaxScale software, which acts as a gateway between databases and apps, will transform life for admins and developers.
MaxScale, available for MySQL as well as the MariaDB fork, is an open-source proxy that allows databases and apps to be fully decoupled, enabling admin processes to run without affecting apps and for apps to evolve without hampering underlying databases.
"Typically, there's been this difficult relationship between application developers and DBAs [database administrators], in that they need to design some of the database-specific aspects into the application. Then when an application is being operated, the DBA doesn't always have full visibility on the application evolution," MariaDB Corp CEO Patrik Sallner said.
"So if you make changes to the database architecture, it may impact the application. In some organisations you have a DevOps team that's doing all that hand in hand but in all these cases the challenge is that as databases scale to very large volumes - especially when they're clustered - those architectures become very complicated."
In creating MaxScale, the MariaDB team focused on areas it considered the most important for application and database professionals and developed five types of plugins: for protocols, monitoring, routing, authentication, and logging.
According to MariaDB, this approach enables better scalability and flexibility, better database security and a wider choice of future database platforms.
"It's designed to understand multiple different protocols, which wasn't possible before, and then it's a pluggable architecture, so we have multiple different plugins which over time will be adding more capability to it," Sallner said.
"So, for example, we'll be adding sharding and you'll be able to do filtering in a way that allows for more intelligent security. Then you can do geo-replication: more and more clusters across geographies and replication between different sites. There again MaxScale can intelligently help to route that replication."
Along with database sharding, which traditionally has to be done for relational databases in the application, MaxScale opens a number of possible roles, Sallner said.
"We can do load-balancing, for example. So if you have many different databases running underneath an application, MaxScale can actually balance the loads between these different databases," he said.
"From the application's point of view, it looks like just one database underneath, one database server, whereas in fact you have multiple different ones."
As a result, developers can also evolve the application without having to concern themselves with which version of the database is in place.
"Every time you do a new application upgrade, you don't need to change the database. Or vice versa. If you want to upgrade the database, it doesn't have any impact on the application directly," he said.
MariaDB said in future MaxScale will be able to change database protocols from MariaDB and MySQL via JSON to, for example, Microsoft SQL Server.
"We'll add capabilities in the future so it can support Postgres and other databases as well. We'll add protocols for Hadoop and MongoDB and Cassandra and so forth. We'll check where demand lies in the market and then add those over time," Sallner said.
While the proxy source code is available for free, MaxScale will also be included as an option in MariaDB Enterprise. Companies already using MariaDB or MySQL can get MaxScale as an option, with pre-packaged optimised binaries and support under the traditional subscription model. Firms without MariaDB or MySQL will be able to buy MaxScale as a standalone product.
"If you just look at the benefits, on the DBA side it allows for scaling the database, which is so key today and gives easier high availability. For the developer, the main benefit is simplicity of use and that's obviously been one factor that's been driving adoption of MongoDB and other NoSQL databases," Sallner said.
"Using MongoDB, you don't have to think about all the schema. Well, here, from a developer point of view, you get many of the similar benefits. You can have a very complex database structure with a huge number of database servers connected in a cluster and configured in various ways.
"But the application developer doesn't really need to factor in those aspects in evolving the application, because from the application's point of view it looks like one database server and it behaves that way."
New features and plugins, developed with a number of lead customers such as hotel-reservation site Booking.com and telecoms firm Colt which are already using MaxScale in production, will follow later this year.
These features include a plugin for the Binlog server, the connection between master and slave databases, which is designed to reduce network loads and improve disaster recovery.
Sallner said the introduction of the MaxScale proxy has very little impact on performance.
"It's actually a very light architecture, so it has a minimal impact in the sense of latency but it does actually substantially improve the scalability of the server. You find there are some use cases that are so simple that the advantage of adding this gateway would not be sufficient to compensate for the slight lag that you get in it," he said.
"But for most use cases it brings such a large advantage that it compensates easily. It's there and for most of the time you don't need to worry about it. You set it once to do what you want to do. Again, it helps the interface between the database administrator and the application developer because it's a standard interface that can stay there as either side evolves their own needs.
"Then they can make step changes to MaxScale to bring on board new capabilities but they're not tied to each other, so they don't have to iterate on every little change they make."