Empowering Hosting Companies with Cost-effective Resource Management
MariaDB Catalogs is a new, upcoming feature whose development is financially in-part sponsored by IONOS. It is designed to help hosting companies save a lot of money and provide greater control of database resources per customer. This is a bold statement to make, so let’s dig into the technology and see why.
Challenges in Database Hosting
In general, when you are hosting many websites for many customers, you
split the databases up in one of two ways:
- You have many database servers in one or more machines, typically using containers or virtual machines.
- You have one big database server with many different database schemas in it, one per customer.
Option 1: Multiple Database Servers
The first option here has the disadvantage of being expensive to implement. A typical MariaDB Server installation will require 1GB of RAM, and there will be a significant number of threads running per installation. RAM is still not very cheap when you are dealing with hundreds of GB.
Option 2: Single Database Server
The second option is lighter on resources, but there are also disadvantages to this. The customer has less control, typically only one database user and one database schema. Also, noisy neighbours can become a big issue, staving resources for other customers.
The Promise of MariaDB Catalogs
MariaDB Catalogs provides the best of both worlds, whilst also providing additional features that are useful for hosting companies.
Put simply, MariaDB Catalogs are containers inside of MariaDB Server. Every „catalog“ is an isolate set of users and database schemas. Each one cannot see another. You can connect to them either using a port number per catalog, or providing the catalog name along with the database schema you wish to connect to upon connecting, for example „cat1.wordpress“. The user is then authenticated against a set of users stored in that catalog. Each catalog can only see the status variables and statistics for that catalog, with the superuser „Def“ catalog having the ability for a global view.
Technical Insights: How MariaDB Catalogs Work
The Catalogs on disk are basically an extra directory level in the MariaDB data directory. This makes it very easy to move a catalog from one server to another. As for memory, this is shared across the entire MariaDB Server.
Future Prospects: Enhancements and Potential Developments
Whilst it will not be in the first release, Catalogs will provide the ability to restrict resources per-catalog. This will allow you to not only monitor usage per-catalog, but constrain lower-tier customers to a set amount of resources.