Posts Tagged: database

World Backup Day 2022

The 31st of March each year is World Backup Day. This day is designed to help raise awareness of the importance of keeping your critical data backed-up.

A “backup” is an additional copy of all your important files and data – for example, your family photos, home videos, documents and emails.

Instead of keeping a single copy just in one place (like your computer), the idea is that you also keep another secondary copy of everything somewhere else as well. That way, if anything should happen to the device where your original data is stored, you’ll still have a “backup” copy stored elsewhere.

Here at MIDAS HQ, we strongly believe in the importance of regularly backing-up data you can’t afford to loose. We’ve built in a number of backup features to our leading room booking and resource scheduling software to do just that!

How MIDAS backs up your data

MIDAS seamlessly makes complete and automated backups of its own database. It does this upon the first successful login each and every day. These backups are compressed, and typically backups are less than 1MB each in size. Backups are also encrypted, and stored on your MIDAS server for a length of time you specify, typically 7-30 days.

To further protect your data, these automated daily backups can optionally also be emailed daily to a specific email address too. This feature allows you to retain your own “off-site” copies of your MIDAS data within no effort!

In addition to the automated daily backups which your MIDAS system takes, we also provide the ability to instantly generate an backup at any time too! An administrator can navigate to MIDAS Admin Options → Manage MIDAS → Database, and use the one-click “Backup Now” button. We really couldn’t make it easier to backup your MIDAS data on-demand!

Restoring Backups

Database backups (whether generated manually or automatically) can be easily and readily restored at any time. You can choose to partially restore a part of a backup, or restore it in full – at any time, all through a simple interface. This may be accessed through MIDAS Admin Options → Manage MIDAS → Database → Restore. So, should you ever wish to “roll back” your MIDAS system to an earlier point in time, or if you suffer a massive server failure and loose data, you can have your MIDAS system back up and running again in no time!

Database Backup and Restore in MIDAS
Database Backup and Restore in MIDAS

For more information on the backup and restore features of MIDAS, please see mid.as/help/manage-database-settings

For our “cloud hosted” customers, we also take complete database backups three times a day. A daily backup is then separately stored off-site for a period of six months.

So as you’ll see from the above features and processes we’ve built into our software, we take backups seriously! We make it painless to ensure your important MIDAS booking data can be easily backed up and restored with minimal fuss!

Whilst you can be confident your MIDAS data is taken care of, why not take a moment to backup your own important personal files on World Backup Day? Your family photos, home videos, documents and emails are important! Can you afford to loose them!? Yes, it may be a little tedious, but you’ll be glad you did should anything ever happen to your files!

How many backups of my important data should I make?

As a general rule, it’s a good idea to have at least three copies of your important data. At least one of these copies should be kept off-site or in the cloud. This is known as the 3-2-1 backup rule.

Here’s what it means:

  • Keep at least three copies of your data, including the original data and two backups.
  • Store the copies on two different types of media, such as an external hard drive and a cloud storage service.
  • Keep one of the backups off-site. Either in a different physical location or in the cloud, to protect against disasters like fire, theft, or flooding.

By following the 3-2-1 backup rule, you can ensure your important data is protected even if one copy is lost, damaged, or destroyed.

It’s also a good idea to regularly test your backups too! Testing a backups ensure they are working properly in the event you’ll need to access them. It’s important to update your backups regularly too – to keep them current.


MariaDB vs MySQL

Any software application that “stores” data in some way shape or form, needs a reliable and efficient way to do so. That’s where a database comes in!

MIDAS – our web based room booking and resource scheduling software – is no exception. Since 2012, for its database, MIDAS has supported MySQL. More recently we started supporting MariaDB too.

Last week we announced that we’d migrated all our cloud hosted customers to MariaDB.

In this post we thought we’d look a little bit closer as to the differences between MySQL and MariaDB.

MySQL What is MySQL?

MySQL is a database engine released under a GNU General Public License, and also available under a variety of proprietary licenses.

MySQL was originally owned and sponsored by the Swedish company MySQL AB, which was subsequently bought by Sun Microsystems, and which then went on to be ultimately acquired by Oracle Corporation.

In 2009, when it was announced that Oracle was to acquire Sun, the founder of MySQL wasn’t happy and so “forked” the MySQL project and created MariaDB… more on that later.

Today, MySQL is the second most popular database engine in the world.

Prominent users of MySQL include Facebook, Pinterest, Airbnb, Sony, BBC, Symantec, GitHub, and booking.com.

MariaDB What is MariaDB?

MariaDB is a community-developed fork of MySQL. One of its key attractions is that it is intended to always remain free under a GNU General Public License.

It was created by one of the founders of MySQL, who forked it due to concerns over MySQL’s acquisition by Oracle Corporation in 2009. The concerns centered around rumors that Oracle (who already developed a competing self-titled database product) wanted to kill off MySQL in order to let their own “Oracle” database thrive. In the end, that didn’t actually happen, but that fear was the initial main driving factor behind MariaDB initially.

MariaDB intended to maintain high compatibility with MySQL, ensuring it would be a “drop-in replacement” for MySQL. Whilst that’s still broadly true today, since its inception, the features of the two database engines have slowly diverged more.

MariaDB version numbers initially followed MySQL’s numbering scheme up to version 5.5. As such, MariaDB 5.5 for example offers all of the features that MySQL 5.5 offers.

Specific new features have since been developed in MariaDB, so its developers decided that a major version number change was necessary. MariaDB 10.0 was released in November 2012, whilst MySQL at that time remained at version 5.

New features are added more frequently to MariaDB than to MySQL. MariaDB development is also led by some of the original developers of MySQL, with many other contributors. MySQL on the other hand is now developed almost exclusively by Oracle’s own in-house team.

Prominent users of MariaDB include Google, Mozilla, and Wikipedia.

Popularity of MySQL and MariaDB

Whilst today MySQL is still the second most popular database engine in the world, its popularity has been slowly declining over the years. At the same time, interest in MariaDB (currently the 11th most popular database) has been steadily increasing.

Global interest in MySQL since 2004
MySQL global interest since 2004 – Source: Google Trends
Global interest in MariaDB since 2004
MariaDB global interest since 2004 – Source: Google Trends

A brief history of database evolution in MIDAS

Our web based room booking and resource scheduling software, MIDAS, has been in active development for over 15 years now.

To help ensure maximum server compatibility, in the early days of our software, data was stored in simple CSV (Comma Separated Value) files.

In 2010, we migrated data storage from CSV to XML (Extensible Markup Language) files.

Two years later, in 2012 – and to coincide with the release of MIDAS v4 – we made the switch to a MySQL database.

MIDAS Database Evolution
MIDAS Database Evolution

Read more: MIDAS v4 – Why the database change?

Between 2012 to 2019 we continued to develop MIDAS exclusively using MySQL as its back-end database.

In 2019 we started receiving queries from a couple of customers asking if we’d consider supporting other database engines, as they weren’t big fans of MySQL.

By this time, MariaDB was gaining in popularity, and as it was billed as a “drop in replacement” for MySQL, it seemed a logical choice to explore.

In 2020, we released MIDAS v4.24, with preliminary and experimental support for MariaDB.

In our own development environment here at MIDAS HQ, we ran both MySQL and MariaDB in parallel during 2020. During this time, MySQL remained as the “preferred” database engine we use for development and testing of our software.

At the beginning of 2021, we made the decision to switch our “preferred” development database engine over to MariaDB. (We still continue to run MySQL, but this is mainly just for testing purposes these days).

Why we moved to MariaDB?

MariaDB has a number of advantages over MySQL, including:

  • MariaDB offers improved performance in many scenarios.
  • MariaDB is community-driven.
  • MariaDB has 268 contributors vs 83 contributors to MySQL *
  • MariaDB is in more active development (MariaDB has 193,330 code commits – the latest was today, MySQL has 163,534 – the latest was 3 months ago *).
  • MariaDB is gaining in popularity.

* correct at time of writing

All these factors led us to decide to migrate our development environment over to MariaDB in 2021.

In July 2021, we also seamlessly migrated our cloud-hosted customers over to MariaDB.

Should I choose MySQL or MariaDB?

If you’re considering a self-hosted edition of MIDAS (remember that we also offer a cloud-hosted edition too!), our software currently supports both MySQL and MariaDB databases.

At the end of the day, it will come down to personal preference, but we like to give self-hosted customers a choice. So if you’re looking for a room booking system that’s compatible with either MySQL or MariaDB, choose MIDAS!


Migrating to MariaDB

Migrating to MariaBD

As of 4th July 2021, all our cloud-hosted customer’s MIDAS databases have been migrated across from MySQL to MariaDB.

MariaDB What is MariaDB?

MariaDB is a community-developed “fork” of the popular MySQL database engine.

It was created by one of the original founders of MySQL, who forked it over concerns surrounding MySQL’s acquisition by Oracle Corporation in 2009. These concerns centered around rumors that Oracle were considering killing off MySQL to prevent competition with their own “Oracle” database. In the end, that didn’t actually happen and MySQL continues to remain available. But MariaDB continues to gain in popularity year on year, and has a number of advantages over MySQL.

Why the move from MySQL to MariaDB?

  • MariaDB offers improved performance over MySQL in many scenarios.
  • MariaDB is community-driven, whereas MySQL is owned and developed by Oracle Corporation.
  • MariaDB has 268 contributors vs 83 contributors to MySQL *
  • MariaDB is arguably in more active development. (MariaDB has 193,318 code commits – the latest was today, MySQL has 163,534 – the latest was 3 months ago *)
  • MariaDB continues to gain in popularity.

* correct at time of writing

Now, we’ve been thoroughly testing MariaDB in our MIDAS development environment for well over a year now. In fact, it’s now become our “preferred” database engine over MySQL. We now only use MySQL for testing purposes. Because we now develop primarily using MariaDB, it made sense to move cloud-hosted customers over to this database engine too.

Will I notice any difference?

Our cloud-hosted customers may notice small performance improvements when performing certain operations in their online booking system. Other than that customers shouldn’t notice any other obvious changes.

That doesn’t mean that there aren’t any additional benefits to MariaDB though! One of the things we’ve now been able to do in to MariaDB is implement “data-at-rest” encryption.

Data-at-rest encryption

When it comes to encrypting data send over the internet, there are broadly two different types of encryption; encryption in transit, and encryption at rest.

Encryption in transit deals with the secure transmission of data between your browser and a server. For example, if you submit a form on a web page, the data you entered needs to be transmitted (or “sent”) to a server. If the form was on a web page severed from a URL beginning “http://”, the data is transmitted unencrypted to the sever. This means that they data you’re submitting could potentially be intercepted and read during transit.

A form submitted on a website accessed over httpS, with correctly configured security certificates, will mean than the data will be encrypted in transit to the server.

All of our cloud-hosted MIDAS systems are accessible over secure https only. We support the latest standards and protocols (including TLS 1.3), and disallow older/obsolete/insecure protocols (like SSL 2/3, and TLS 1.0/1.1). If you’re interested, you can view our A+ rating on SSL Labs.

Encryption at rest on the other hand deals with how data is actually stored on a server (i.e. on a physical disk). Data may be encrypted in transit, yet not encrypted at rest, or vice versa.

The most secure systems are those which encrypt data both in transit AND at rest.

As of 4th July 2021, we’re pleased to announce that all our cloud hosted customer’s databases are also now encrypted at rest too!

What about self-hosted customers?

This month’s migration from MySQL to MariaDB affects cloud-hosted customers only.

Self-hosted customers have a choice between either using MySQL or MariaDB for their MIDAS database.

We have no plans to discontinue support for MySQL in the foreseeable future, and will continue to provide support to customers who are using MySQL for their MIDAS booking systems.


Last week, we posted about ensuring your server is ready for MIDAS v4. In doing so, we unveiled that this major update would utilize a new database system… but why this change?

MIDAS Database Evolution
MIDAS Database Evolution

First came CSV…

When development first started way back in 2005, MIDAS stored data in a series of “flat file” databases. These were essentially character-delimited data files (similar to the popular CSV (comma separated value) file format). As MIDAS developed and grew over the next couple years, this format for storing data become more and more restrictive to what we wanted to do with MIDAS. Consequently, an improved method for storing data was needed.

…followed by XML

A new database format was first introduced with MIDAS v3, in 2010, when we moved the data storage over to an XML based format. This offered a number of improvements, allowed for customizations, and was more “robust” than the previous “flat file” format

However, this XML based format does have some drawbacks. As the storage was still essentially file and disk based, the performance of MIDAS was dependent on the number and size of XML files MIDAS had to read from, process, and write to disk. Now, for the majority of our customers, this has never been an issue. However, for a very small number of customers – those with a very high number of venues/bookings/users, etc, – the file/disk based nature of the XML storage format, could impact on the speed and performance of MIDAS.

…and so that’s the primary reason why starting with MIDAS v4, we’ve moved over to a faster, and “industry-standard”, database format – MySQL.

Introducing MySQL

“If MySQL is so good, why hasn’t this been implemented sooner?”
Well, when MIDAS was originally created over 7 years ago, MySQL was in its infancy! At that time, few servers ran MySQL by default, and there were very few web applications around that used it. In those days, if you wanted to add MySQL support to your website hosting account, it would likely be an expensive “add on”.
For this reason, we initially took the decision not to rely on MySQL, as we wanted to make MIDAS as widely accessible as possible. This is why, for the last 7 years, you’ve only needed a web server running Perl to host MIDAS.

However, the Internet has come a long way in the last 7 years! These days, MySQL is common place. The vast majority of web servers/web hosting packages now have MySQL available and ready to use “out of the box”, and a very large number of websites and popular website software use MySQL databases.

When MIDAS v4 becomes available this Summer, if you wish to install/run this new version of our scheduling software on your own web server, MySQL 5.1 (or later) must be available. So check your server now, so you don’t miss out!