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

Partitioning GitHub’s relational databases to handle scale

Blog post from GitHub

Post Details
Company
Date Published
Author
Thomas Maurer
Word Count
2,021
Company Posts That Month
22
Language
English
Hacker News Points
-
Post removed?
No
Summary

GitHub.com, initially built on Ruby on Rails with a single MySQL database, has evolved over the years to support its growth and resilience demands by iterating its database architecture. Originally relying on a primary database cluster named mysql1, GitHub faced scalability challenges as it expanded. In response, the company implemented virtual partitions and schema domains to manage data more effectively, enforced by SQL linters that ensure data can be safely partitioned without cross-domain queries. In addition, GitHub developed a transaction linter and employed tools like Vitess and a custom write-cutover process for moving large data sets across database clusters without downtime. These efforts have resulted in a 50% load reduction on database hosts, improved system reliability, and a reduction in database-related incidents. The strategic use of both vertical and horizontal partitioning has allowed GitHub to accommodate sustainable growth, with plans to detail further advancements in future communications.

Trends Found in this Post
Trend Post Mentions Total Month Mentions Posts Companies MoM
Kubernetes 1 1,000 135 53 +55%
Use This Data

Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.