Partitioning GitHub’s relational databases to handle scale
Sep 27, 2021Thomas Maurer

Summary
This post details the introduction of virtual partitions using schema domains and SQL linters to logically separate database tables. It explains how these tools enforce boundaries, identify cross-schema-domain queries and transactions, and facilitate safe physical partitioning. The post also elaborates on two physical data migration strategies: Vitess for vertical sharding and a custom write-cutover process involving MySQL replication and ProxySQL for zero-downtime migrations.