F1: the fault-tolerant distributed RDBMS supporting google's ad business

  • Authors:
  • Jeff Shute;Mircea Oancea;Stephan Ellner;Ben Handy;Eric Rollins;Bart Samwel;Radek Vingralek;Chad Whipkey;Xin Chen;Beat Jegerlehner;Kyle Littlefield;Phoenix Tong

  • Affiliations:
  • Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA;Google, Inc., Mountain View, CA, USA

  • Venue:
  • SIGMOD '12 Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Many of the services that are critical to Google's ad business have historically been backed by MySQL. We have recently migrated several of these services to F1, a new RDBMS developed at Google. F1 implements rich relational database features, including a strictly enforced schema, a powerful parallel SQL query engine, general transactions, change tracking and notification, and indexing, and is built on top of a highly distributed storage system that scales on standard hardware in Google data centers. The store is dynamically sharded, supports transactionally-consistent replication across data centers, and is able to handle data center outages without data loss. The strong consistency properties of F1 and its storage system come at the cost of higher write latencies compared to MySQL. Having successfully migrated a rich customer-facing application suite at the heart of Google's ad business to F1, with no downtime, we will describe how we restructured schema and applications to largely hide this increased latency from external users. The distributed nature of F1 also allows it to scale easily and to support significantly higher throughput for batch workloads than a traditional RDBMS. With F1, we have built a novel hybrid system that combines the scalability, fault tolerance, transparent sharding, and cost benefits so far available only in "NoSQL" systems with the usability, familiarity, and transactional guarantees expected from an RDBMS.