Users count on Core Publisher to provide a simple way to deliver digital content to station audiences and the public media system. With so much content flowing through the CMS, fully functional data processing and storage is a prerequisite to meeting user expectations. As a Drupal installation, the heart of Core Publisher is its relational database. More than anything else, the database is responsible for performance, data replication (to a disaster recovery site), and transactional consistency. Database functionality makes the difference between a sluggish, painful website and a well-oiled machine and Core Publisher's database has been ripe for an upgrade for some time now.
CP has been running MySQL 5.5.31 on Kernel 2.6.32 for the better part of four years. We've upgraded database hardware over the years and when we really started to hit our processing limits, added a second pair of database servers (another master/slave) to split the load. As a result we've had a very stable database platform. But there are numerous advances in the technology that we haven't been able to take advantage of, until now.
At the end of January we completed software upgrades on the last of our four database machines. The resulting transition to MariaDB 10.1.21+ and Kernel 3.16.0+ and migration from spinning media to solid state drives (SSDs) gives us a number of advantages:
- Faster transactional performance which translates to a faster everyday CP experience. Advances in both MySQL and the Linux Kernel support faster reads and query processing.
- Faster database startup times, providing faster recoveries in an emergency. SSDs (solid-state drives) make reading data from disk 100 times faster. MariaDB's new option to save the buffer pool (the in-memory cache of current data) to disk at shutdown means that when the server restarts everything can be restored to its last known state instantly instead of taking half an hour to warm up the cache.
- Instant database failover means greater CP stability. Moving to a more modern version of MySQL/MariaDB gives us more options for syncing data to our slave databases. We've used this opportunity to fully automate the process to bring CP up on a slave database, dramatically shortening the time it takes us to failover in the event of a server failure.
- Full-text indexing is now supported directly in MariaDB. This allows us to consolidate databases across some of our other products and leverage this powerful search in more of our offerings.
By taking these steps to modernize Core Publisher's backend, we ensure its ability to perform and scale for the future.