Google Research

Monarch: Google's Planet-Scale In-Memory Time Series Database

  • Colin Adams
  • Luis Alonso
  • Ben Atkin
  • John P. Banning
  • Sumeer Bhola
  • Rick Buskens
  • Ming Chen
  • Xi Chen
  • Yoo Chung
  • Qin Jia
  • Nick Sakharov
  • George T. Talbot
  • Adam Jacob Tart
  • Nick Taylor
VLDB Endowment (2020), 3181–3194

Abstract

Monarch is a globally-distributed in-memory time series database system in Google. Monarch runs as a multi-tenant service and is used mostly to monitor the availability, correctness, performance, load, and other aspects of billion-user-scale applications and systems at Google. Every second, the system ingests terabytes of time series data into memory and serves millions of queries. Monarch has a regionalized architecture for reliability and scalability, and global query and configuration planes that integrate the regions into a unified system. On top of its distributed architecture, Monarch has flexible configuration, an expressive relational data model, and powerful queries. This paper describes the structure of the system and the novel mechanisms that achieve a reliable and flexible unified system on a regionalized distributed architecture. We also share important lessons learned from a decade's experience of developing and running Monarch as a service in Google.

Learn more about how we do research

We maintain a portfolio of research projects, providing individuals and teams the freedom to emphasize specific types of work