
Sign up to save your podcasts
Or


This paper from Google describes the design and implementation of Dapper, Google’s system for tracing requests in distributed systems. The authors explain why they chose a distributed tracing system, the design decisions they made for Dapper, and how the Dapper infrastructure has been used in practice. They also discuss the impact of Dapper on application performance and their strategies for mitigating the overhead. The paper emphasizes the importance of application-level transparency for distributed tracing systems.
https://static.googleusercontent.com/media/research.google.com/en//archive/papers/dapper-2010-1.pdf
This document describes the development and implementation of Google's Chubby lock service, a highly available and reliable system that provides coarse-grained locking and storage for distributed systems. The authors discuss the design choices behind Chubby, including its emphasis on availability over performance, and the use of a file system-like interface for ease of use. The paper details Chubby's architecture, including its components, consensus protocol, and caching mechanisms. It also explores unexpected uses of Chubby, such as its popular role as a name service, and discusses the lessons learned during its development and deployment, such as the importance of considering developer habits and the need to scale the system effectively.
https://static.googleusercontent.com/media/research.google.com/en//archive/chubby-osdi06.pdf
The provided text describes the architecture and design of Megastore, a Google-developed storage system designed to meet the needs of interactive online services. Megastore blends the scalability of NoSQL datastores with the convenience of traditional relational databases, offering high availability and strong consistency guarantees. It achieves this by utilizing Paxos, a fault-tolerant consensus algorithm, to synchronize data replication across geographically distributed data centers. Megastore also implements a partitioning strategy, dividing data into entity groups that are replicated separately, which allows for high throughput and localized outages. The authors detail the features of Megastore's data model, including ACID transactions, indexes, and queues, and explain how these features are implemented within the system. They also provide details about Megastore's replication algorithm and its performance characteristics, as well as insights into the development and operational experience with the system.
https://www.cidrdb.org/cidr2011/Papers/CIDR11_Paper32.pdf
The article, “Bigtable: A Distributed Storage System for Structured Data,” describes a large-scale distributed data storage system developed at Google, capable of handling petabytes of data across thousands of servers. Bigtable uses a simple data model that allows clients to dynamically control data layout and format, making it suitable for various applications like web indexing, Google Earth, and Google Finance. The authors detail the system's implementation, including its use of Google File System (GFS) for data storage, Chubby for distributed locking, and SSTables for data organization. The article concludes by evaluating Bigtable's performance and scalability through various benchmarks and discusses how it is used in real Google products.
MapReduce is a programming model that simplifies the process of processing large datasets on clusters of commodity machines. It allows users to define two functions: Map and Reduce, which are then automatically parallelized and executed across the cluster. The Map function processes key/value pairs from the input data and generates intermediate key/value pairs. The Reduce function merges all intermediate values associated with the same key to produce the final output. This paper, written by researchers at Google, describes the implementation of MapReduce on their large-scale computing infrastructure, highlighting its features, performance, fault tolerance, and real-world applications. The authors also discuss the benefits of using MapReduce, such as its simplicity, scalability, and flexibility, and compare it to other related systems.
The source is a technical paper that describes the Google File System (GFS), a scalable distributed file system designed to meet Google's data processing needs. The paper discusses the design principles behind GFS, including its focus on handling component failures, managing large files, and optimizing for append-only operations. It also details the system architecture, consisting of a single master node and multiple chunkservers, as well as the implementation of various features, such as atomic record appends and snapshots. Finally, the authors present micro-benchmark results and real-world measurements from GFS clusters used at Google to illustrate the system's performance and scalability.
Facebook developed a distributed data store called TAO to efficiently serve the social graph data. TAO prioritizes read optimization, availability, and scalability over strict consistency, handling billions of reads and millions of writes per second. TAO utilizes a simplified data model based on objects and associations, offering a specialized API designed for common social graph queries. The architecture involves a multi-layered caching system, with followers caching data and leaders communicating with the persistent storage layer in MySQL. TAO leverages a master/slave configuration to manage geographic distribution, ensuring data consistency across multiple regions while mitigating inter-region latency. The paper details the design, implementation, consistency model, performance characteristics, and a comparison with existing related work.
This document details how Facebook engineers scaled Memcached, a popular open-source in-memory caching solution, to accommodate the demands of the world's largest social network. The paper outlines the development of Facebook's Memcached architecture, starting with a single cluster of servers and progressing through geographically distributed clusters. It highlights key optimizations and mechanisms implemented at various scales, including reducing latency, handling failures, and maintaining data consistency across multiple regions. The document also provides insights into the characteristics of Facebook's Memcached workload, including fan-out, response size, and latency.
https://research.facebook.com/publications/scaling-memcache-at-facebook/
This technical paper details the architecture and design of Monarch, a planet-scale in-memory time series database developed at Google. Monarch is used to monitor the performance and availability of massive, globally distributed systems like YouTube, Google Maps, and Gmail. The paper discusses the system's novel features, including its regionalized architecture, expressive query language, and support for sophisticated data types, such as distributions and exemplars. It also presents a comprehensive evaluation of Monarch's scalability, highlighting its ability to handle trillions of time series, ingest terabytes of data per second, and serve millions of queries per second. Finally, the paper outlines key lessons learned from the development and operation of Monarch over a decade.
The provided text describes the architecture and functionality of Gorilla, Facebook's in-memory time series database. Gorilla was developed to address the challenges of monitoring and analyzing massive amounts of time series data generated by Facebook's vast infrastructure. The system prioritizes high availability for writes and reads, even in the face of failures, by using compression techniques, a unique data structure, and replication across geographically distributed datacenters. Gorilla achieves high performance through compression and in-memory data structures, enabling the development of new tools for time series correlation, visualization, and aggregation. The paper highlights the importance of prioritizing recent data over historical data in this context, and the trade-offs made to achieve high availability.
From the publisher's feed