The brief

GitHub's new Git storage architecture is capable of handling thousands of writes per second with reads that scale on demand. Through internal testing, GitHub has demonstrated the ability to support 5,000 concurrent agents working on a repository, sending 7,200 pushes per second to a repo, all while serving read traffic with consistently low latency. The new architecture is built on two principles: minimize coordination and decouple storage from compute.

The architecture uses virtual replicas, which are backed by Azure Blob Storage, to store Git objects and serve requests. Virtual replicas can be added or removed as needed to handle changes in traffic, and they use a local disk cache to improve performance. The architecture also uses a separate replicated log service, called Ref-CAS, to store references and the list of packs that make up the repository. This allows the parts of Git infrastructure that used to be tightly coupled to scale independently, with only reference updates requiring agreement.