GitHub has rolled out a new feature that it claims will make the widely used code hosting platform far less prone to downtime.
Distributed Git (DGit) uses the sync mechanisms of the Git protocol to replicate GitHub’s repositories among three servers. Should one server go offline because of a mishap or for maintenance, traffic can be redirected to the other two.
Using Git as the replication mechanism provides companies with a little more flexibility than simply mirroring blocks between disks, according to GitHub. “Think of the replicas as three loosely coupled Git repositories kept in sync via Git protocols, rather than identical disk images full of repositories,” says the blog post describing the new system. Read operations can be directed to a specific replica if needed, and new replicas of a given repository can be created if a file server has to be taken offline.
Another advantage to using Git is that GitHub understands the protocol, which is heavily optimized for synchronizing between systems. “Why reinvent the wheel when there is a Formula One racing car already available?” says GitHub. Using Git also means the failover process requires less manual intervention, and failover servers are not simply sitting idle; they’re actively used for serving read operations and receiving writes.
The rollout of DGit has been a gradual process. GitHub ported its own repositories first, testing to make sure they still worked correctly, then started moving third-party and public repositories. Next came the busiest and most heavily trafficked repos, “to get as much traffic and as many different usage patterns into DGit as we could.” Currently, 58 percent of all repositories have been moved. The rest are slated to follow “as quickly as we can,” GitHub says, since moving to DGit is “a key foundation that will enable more upcoming innovations.”
The biggest advantage of DGit is less downtime. Even a small amount of GitHub downtime — whether because of disaster or attacks — leaves many projects and organizations temporarily crippled.
Third parties have addressed GitHub downtime with both complementary products, like Anam.io’s repository backup services, and competing products, like the GitLab open source alternative. But for many organizations, it could be easier to turn to GitHub and its increasingly ambitious enterprise solutions to do the heavy lifting.