Google’s dl.google.com serves binary downloads for Chrome, Earth, the Android SDK, and thousands of other files. Originally written in C++ around 2007, the service outgrew its original design as its surrounding infrastructure and use cases evolved. On its last legs, it was rewritten in Go in 2012.
In this talk we discuss the problems with the original C++ server, such as blocking threads, callback spaghetti, and deployment issues, and how these issues were addressed in the Go rewrite.
The new download service is a great example of an idiomatic Go server. It uses Go’s interfaces to elegantly compose file system, caching, and serving layers, and Go’s powerful standard library to serve the actual HTTP traffic.
We also introduce groupcache, a new open source distributed caching library originally written for dl.google.com and now used by other projects inside and outside of Google. groupcache is a peer-to-peer caching client and server library featuring hot item replication and coordinated cache filling.
Brad Fitzpatrick has been writing Open Source software for over two-thirds of his life and is probably best known for LiveJournal, memcached, Gearman, and OpenID. Brad works on the Go language team at Google and has never been this excited about programming and how fun and easy it is to write good software.
Comments on this page are now closed.
For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or firstname.lastname@example.org.
View a complete list of OSCON contacts