How GitHub Upgraded 1,200 MySQL Servers to 8.0 Without Downtime
GitHub migrated over 1,200 MySQL hosts to version 8.0 through a staged, zero‑downtime process, detailing infrastructure scale, tooling, and five upgrade steps, while also highlighting new Java architecture video courses for developers.
GitHub’s MySQL Upgrade Experience
GitHub recently shared how they upgraded the underlying database of GitHub.com to MySQL 8.0.
GitHub stores massive relational data in MySQL, and upgrading a cluster of over 1,200 MySQL hosts without impacting Service Level Objectives was a significant challenge.
The planning, testing, and execution of the upgrade took more than a year and required collaboration across multiple internal teams.
GitHub’s MySQL Infrastructure Overview
More than 1,200 hosts, including Azure virtual machines and bare‑metal servers.
Over 300 TB of data stored, handling 5.5 million queries per second across 50+ database clusters.
Each cluster configured with primary‑replica high availability.
Partitioned storage using horizontal and vertical sharding, plus Vitess clusters for large‑domain workloads.
A rich tooling ecosystem: Percona Toolkit, gh‑ost, orchestrator, freno, and internal automation tools.
Because both MySQL 5.7 and 8.0 needed to be operated simultaneously, GitHub’s tools and automation had to support mixed‑version compatibility and the new, changed, or deprecated syntax between the versions.
To meet availability standards, the team adopted a phased upgrade strategy that allowed checkpoints and rollbacks.
Upgrade Plan
Step 1: Upgrade rolling replica
Step 2: Upgrade replication topology
Step 3: Promote MySQL 8.0 hosts to primary cluster
Step 4: Upgrade internal instance types
Step 5: Cleanup
After confirming the clusters are stable on MySQL 8.0, the 5.7 servers are decommissioned, and verification runs for at least a full 24‑hour traffic cycle to ensure no issues during peak load.
The upgrade was driven by MySQL 5.7 reaching end‑of‑life, and the new version provides security patches, bug fixes, performance improvements, and features such as instant DDL, invisible indexes, and compressed binary logs.
For detailed technical information see the GitHub blog post.
Java High-Performance Architecture
Sharing Java development articles and resources, including SSM architecture and the Spring ecosystem (Spring Boot, Spring Cloud, MyBatis, Dubbo, Docker), Zookeeper, Redis, architecture design, microservices, message queues, Git, etc.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
