Home / Companies / PagerDuty / Blog / Post Details
Content Deep Dive

Trading up Your Engine: How to Move Your IOPS-heavy MySQL/Rails Stack to Unicode Without Downtime

Blog post from PagerDuty

Post Details
Company
Date Published
Author
PagerDuty
Word Count
2,555
Language
English
Hacker News Points
-
Summary

In a detailed recount of PagerDuty's database transition, the text outlines the complex process of upgrading from MySQL 5.1, with latin1 character encoding, to MySQL 5.5, using the utf8mb4 encoding for full Unicode support. Initially, the company faced challenges with maintaining non-ASCII character support and dealing with performance issues due to MySQL’s limitations and the default latin1 character set. The transition involved addressing MySQL's constraints on index sizes, which restrict the use of utf8mb4 due to its higher byte requirement per character, by configuring the database to use the Barracuda file format and enabling large prefix support. The team utilized master/slave replication to ensure a seamless migration with minimal downtime, enabling character set conversions without data loss. By synchronizing the character set and collation settings between the database and client applications, the migration not only solved character encoding issues but also improved overall system performance. The text concludes with reflections on the successful execution of the migration, emphasizing the importance of addressing legacy system limitations to support modern, global character sets.