Doorman: Global Distributed Client Side Rate Limiting

Jos Visser, Google

Abstract: 

Doorman is a Google developed system for global distributed client side rate limiting. We are in the process of open sourcing it. With Doorman an arbitrary number of globally distributed clients can coordinate their usage of a shared resource so that the global usage does not exceed global capacity.

This presentation:

  • Describes the fundamentals of the Doorman system
  • Explains the concepts of the RPC protocol between Doorman components
  • Shows code examples of Doorman configurations and clients
  • Shows graphs of how Doorman clients ask for and get capacity, and how this sums up globally
  • Explains how Doorman deals with spikes, clients going away, servers going away
  • Explains Doorman's system reliability features
  • Points to the Doorman open source repository
  • Explains the Doorman simulation (in Python) which can be used to quickly verify Doorman's behaviour in a specific scenario

Jos Visser has been working in the field of reliable and highly available systems since 1988. Starting as a systems programmer (MVS) at a bank, Jos's >25 year career has seen him working with a variety of mission critical systems technologies, including Stratus fault-tolerant systems, HP MC/ServiceGuard, Sun Enterprise Cluster, and Linux Lifekeeper. Jos joined Google in 2006 as an engineer in the Maps SRE team. Since then he has worked in a number of different areas including Social (Orkut SRE), Google's cloud computing, backup and monitoring teams, and YouTube. Since early 2016, he is working in the Travel SRE team in Cambridge MA, where he is tech lead for the pipelines that ingest airline and travel industry data.

Jos Visser, Google

Jos Visser has been working in the field of reliable and highly available systems since 1988. Starting as a systems programmer (MVS) at a bank, Jos's >25 year career has seen him working with a variety of mission critical systems technologies, including Stratus fault-tolerant systems, HP MC/ServiceGuard, Sun Enterprise Cluster, and Linux Lifekeeper. Jos joined Google in 2006 as an engineer in the Maps SRE team. Since then he has worked in a number of different areas including Social (Orkut SRE), Google's cloud computing, backup and monitoring teams, and YouTube. Since early 2016, he is working in the Travel SRE team in Cambridge MA, where he is tech lead for the pipelines that ingest airline and travel industry data.

BibTeX
@conference {202539,
author = {Jos Visser},
title = {Doorman: Global Distributed Client Side Rate Limiting},
year = {2016},
address = {Dublin},
publisher = {USENIX Association},
month = jul
}

Presentation Video