Build & maintain complex distributed systems
October 1–2, 2017: Training
October 2–4, 2017: Tutorials & Conference
New York, NY

Load balancing, consistent hashing, and locality

Andrew Rodland (Vimeo)
1:30pm2:10pm Tuesday, October 3, 2017
Average rating: ****.
(4.33, 3 ratings)

Who is this presentation for?

  • DevOps engineers

Prerequisite knowledge

  • A basic understanding of HTTP services, load balancing, caching, and the existence of hash functions

What you'll learn

  • Explore a new consistent hashing algorithm that improves cache locality and optimizes delivery

Description

Just as with multithreaded programs on a single machine, the performance and scalability of distributed systems can come down to a question of cache locality. By ensuring locality of access to data, you can minimize effort and deliver responses faster.

Using Vimeo’s dynamic video delivery platform Skyfire as an example, Andrew Rodland shares a new consistent hashing algorithm developed by Google researchers that helped improve cache locality and optimize delivery—and made a contribution to open source software in the process. Andrew offers a brief overview of the architecture and describes how the algorithm improves data locality and drastically reduces cache coherency traffic while providing a guaranteed even distribution of load that “traditional” consistent hashing cannot. Along the way, Andrew also discusses the process of implementing the algorithm and integrating it into a widely used piece of open source load balancing software, where it’s now available for general use.

Photo of Andrew Rodland

Andrew Rodland

Vimeo

Andrew Rodland is a senior backend engineer for video systems at Vimeo. For over a decade, Andrew has been mixing the chocolate of dev in the peanut butter of ops. Previously, he was a developer at Shutterstock. Andrew has spoken at (and organized streaming video for) prominent Perl conferences and contributed some cool stuff to CPAN.