Reading List

Comment: Papers not on the reading list from recent top-tier conferences (e.g., OSDI ‘18, SOSP ‘17, SIGCOMM ‘18, NSDI ‘18, ATC ‘18, SIGMOD ‘18, VLDB ‘18, EuroSys ‘18, ISCA ‘18, ASPLOS ‘18) may also be acceptable with permission from the instructor.

Overview and Architecture  
Architecture: Compute+Overall The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines , L.A. Barroso, U. Holzle, Synthesis Lectures on Computer Architecture, 2009. Chapter 1 and 2.
Architecture: Networks Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google’s Datacenter Network, Singh et al., SIGCOMM 2015.
Architecture: Network Routing VL2: A Scalable and Flexible Data Center Network, Greenberg et al., SIGCOMM 2009.
Architecture: Storage The Hadoop Distributed File System, Schvachko et al, MSST, 2010.
Storage Systems  
Storage: GFS The Google File System, Ghemawat et al, SOSP, 2003.
Storage: FDS Flat Datacenter Storage. Nightingale et. al, OSDI, 2012.
Storage: EC-Cache EC-Cache: Load-balanced, Low-latency Cluster Caching with Online Erasure Coding. Rashmi et. al, OSDI, 2016.
Storage: f4 f4: Facebook’s Warm BLOB Storage System. Muralidhar et. al, OSDI, 2014.
Storage: Bigtable Bigtable: A Distributed Storage System for Structured Data. Chang et. al, OSDI, 2006.
Storage: Dynamo Dynamo: Amazon’s Highly Available Key-value Store. DeCandia et. al, SOSP, 2007.
Storage: Spanner Spanner: Google’s Globally-Distributed Database. Corbett et. al, OSDI, 2012.
Storage: PhotoCache An Analysis of Facebook Photo Caching. Huang et. al, SOSP, 2013.
Storage: MemcachedFacebook Scaling Memcache at Facebook. Nishtala et. al, NSDI, 2013.
Storage: Chubby The Chubby lock service for loosely-coupled distributed systems. Mike Burrows, OSDI, 2006.
Execution Engines, Resource Negotiators, Schedulers  
Execution: MR MapReduce Simplified Data Processing on Large Clusters, Dean and Ghemawat, OSDI, 2004.
Execution: Dryad Dryad:Distributed Data-Parallel Programs from Sequential Building Blocks. Isard et. al, EuroSys, 2007.
Execution: CIEL CIEL: a universal execution engine for distributed data-flow computing. Murray et. al, NSDI, 2011.
Execution: Stragglers Reining in the Outliers in Map-Reduce Clusters using Mantri, Ananthanarayanan et al, OSDI, 2010.
Execution: DryadLINQ DryadLINQ: A System for General-Purpose Distributed Data-Parallel Computing Using a High-Level Language. Yu et. al, OSDI, 2008.
Execution: Volcano Encapsulation of parallelism in the Volcano query processing system. Goetz Graefe, SIGMOD, 1990.
Execution: Caching PACMan: Coordinated Memory Caching for Parallel Jobs, Ananthanarayanan et. al, NSDI, 2012.
ResourceNeg: YARN Apache Hadoop YARN: Yet Another Resource Negotiator, Vavilapalli et al, SOCC, 2013.
ResourceNeg: Borg Borg: Large-scale cluster management at Google with Borg. Verma et. al, EuroSys, 2015.
ResourceNeg: Mesos Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center, Hindman et al, NSDI, 2011.
ResourceNeg: DRF Dominant Resource Fairness: Fair Allocation of Multiple Resource Types, Ghodsi et al, NSDI, 2011.
Scheduling: Packing (Carbyne:) Altruistic Scheduling in Multi-Resource Clusters. Grandl et. al, OSDI, 2016.
Scheduling: Packing (Tetris:) Multi-Resource Packing for Cluster Schedulers, Grandl et. al, SIGCOMM, 2014.
Scheduling: Packing Quincy: Fair Scheduling for Distributed Computing Clusters. Isard et. al, SOSP, 2009.
Scheduling: Re-Planning Dynamic Query Re-Planning using QOOP. Mahajan et. al, OSDI, 2018.
Scheduling: Threads Arachne: Core-Aware Thread Management. Qin et. al, OSDI, 2018.
Scheduling: Cache RobinHood: Tail Latency Aware Caching – Dynamic Reallocation from Cache-Rich to Cache-Poor. Berger et. al, OSDI, 2018.
Execution: Spark Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing, Zaharia et al, NSDI, 2012.
Execution: Tez Apache Tez: A Unifying Framework for Modeling and Building Data Processing Applications, Saha et al, SIGMOD, 2015.
Execution: F2 Fast and Flexible Analytics with F2, Grandl et al, 2017.
Execution: Flare Flare: Optimizing Apache Spark with Native Compilation for Scale-Up Architectures and Medium-Size Data. Essertel et. al, OSDI, 2018.
Execution: Transactions Obladi: Oblivious Serializable Transactions in the Cloud. Crooks et. al, OSDI, 2018.
Execution: LoadBalancing1 Ananta: Cloud Scale Load Balancing. Patel et. al, SIGCOMM, 2013.
Execution: LoadBalancing2 Duet: Cloud Scale Load Balancing with Hardware and Software. Gandhi et. al, SIGCOMM, 2014.
Execution: LoadBalancing3 SilkRoad: Making Stateful Layer-4 Load Balancing Fast and Cheap Using Switching ASICs, Miao et. al, SIGCOMM, 2017.
Applications: Batch Analytics and SQL Frameworks  
SQL: SparkSQL Spark SQL: Relational Data Processing in Spark, Armburst et al, SIGMOD, 2015.
SQL: Hive Major technical advancements in Apache Hive, Huai et al, SIGMOD, 2014.
SQL: Impala Impala: A Modern, Open-Source SQL Engine for Hadoop. Kornacker et. al, CIDR, 2015.
SQL: Dremel Dremel: Interactive Analysis of Web-Scale Datasets. Melnik et. al, VLDB, 2010.
SQL: Trill Trill: A High-Performance Incremental Query Processor for Diverse Analytics. Chandramouli et. al, VLDB, 2014.
SQL: SIMD Rethinking SIMD Vectorization for In-Memory Databases. Polychroniou et. al, SIGMOD, 2015.
SQL: Joins Multi-Core, Main-Memory Joins: Sort vs. Hash Revisited. Balkesen et. al, VLDB, 2013.
GeoDistributed: Clarinet Clarinet: WAN-Aware Optimization for Analytics Queries, Viswanathan et al, OSDI, 2016.
GeoDistributed: Geode Global Analytics in the Face of Bandwidth and Regulatory Constraints, Vulimiri et al, NSDI, 2015.
AdHoc: TAG TAG: a Tiny AGgregation Service for Ad-Hoc Sensor Networks. Madden et. al, OSDI, 2002.
Applications: Stream Analytics  
Streaming: Storm Storm @Twitter , Toshniwal et al, SIGMOD, 2014.
Streaming: Heron Twitter Heron: Stream Processing at Scale, Kulkarni et al, SIGMOD, 2015.
Streaming: FacebookStreaming Realtime Data Processing at Facebook. Chen et. al, SIGMOD, 2016.
Streaming: SparkStreaming Discretized Streams: Fault-Tolerant Streaming Computation at Scale, Zaharia et al, SOSP, 2013.
Streaming: Flink Apache Flink: Stream and Batch Processing in a Single Engine, Carbone et al, Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, 2015.
Streaming: Drizzle Drizzle: Fast and Adaptable Stream Processing at Scale. Venkataraman et. al, SOSP, 2017.
Streaming: Chi Chi: A Scalable and Programmable Control Plane for Distributed Stream Processing Systems. Mai et. al, PVLDB, 2018.
Streaming: Gloss Gloss: Seamless Live Reconfiguration and Reoptimization of Stream Programs. Rajadurai et. al, ASPLOS, 2018.
QMS: Kafka Kafka Distributed Messaging System for Log Processing, Kreps et al, NetDB Workshop, 2011. Also read this comparison of widely used Queuing Messaging Processing Systems.
Streaming: rStreams StreamScope: Continuous Reliable Distributed Processing of Big Data Streams, Lin et al, NSDI, 2016.
Streaming: Dataflow The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing. Akidau et. al, VLDB, 2015.
Streaming: Aurora Aurora: a new model and architecture for data stream management. Abadi et. al, VLDB, 2003.
Streaming/Execution: Naiad Naiad: A Timely Dataflow System, Murray et al, SOSP, 2013.
Streaming: Scaling Three steps is all you need: fast, accurate, automatic scaling decisions for distributed streaming dataflows. Kalavri et. al, OSDI, 2018.
Applications: Graph Processing  
GraphProc: Pregel Pregel: A System for Large-Scale Graph Processing, Malewicz et al, SIGMOD, 2010.
GraphProc: TAO TAO: Facebook’s Distributed Data Store for the Social Graph. Bronson et. al, USENIX ATC, 2013.
GraphProc: PowerGraph PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs, Gonzalez et al, OSDI, 2012.
GraphProc: GraphX GraphX: Graph Processing in a Distributed Dataflow Framework, Gonzalez et al, OSDI, 2014.
GraphProc: Arabesque Arabesque: A System for Distributed Graph Mining. Teixeira et. al, SOSP, 2015.
GraphProc: RDF Fast and Concurrent RDF Queries with RDMA-based Distributed Graph Exploration. Shi et. al, OSDI, 2016.
GraphProc: ASAP ASAP: Fast, Approximate Pattern Mining at Scale. Iyer et. al, OSDI, 2018.
GraphProc: Grappa Grappa: A Latency-Tolerant Runtime for Large-Scale Irregular Applications. Nelson et. al, USENIX ATC, 2015.
GraphProc: Facebook One Trillion Edges: Graph Processing at Facebook-Scale. Ching et. al, VLDB, 2015.
Applications: Web, Search, Social  
Search: Google The anatomy of a large-scale hypertextual Web search engine. Brin and Page, Computer Networks and ISDN Systems, 1998.
Social: FacebookAnalytics Data warehousing and analytics infrastructure at Facebook. Thusoo et. al, SIGMOD, 2010.
Social: FacebookPhoto Finding a needle in Haystack: Facebook’s photo storage. Beaver et. al, OSDI, 2010.
Social: Unicorn Unicorn: A System for Searching the Social Graph. Curtiss et. al, VLDB, 2013.
Performance Isolation  
PerfIso: Heracles Heracles: Improving Resource Efficiency at Scale. Lo et. al, ISCA, 2015.
PerfIso: Quasar Quasar: resource-efficient and QoS-aware cluster management. Delimitrou and Kozyrakis, ASPLOS, 2014.
PerfIso: ZygOS ZygOS: Achieving Low Tail Latency for Microsecond-scale Networked Tasks. Prekas et. al, SOSP, 2017.
PerfIso: PerfIso PerfIso: Performance Isolation for Commercial Latency-Sensitive Services. Iorgulescu et. al, USENIX ATC, 2018.
Monitoring, Debugging  
Monitor: Pivot Pivot Tracing: Dynamic Causal Monitoring for Distributed Systems. Mace et. al, SOSP, 2015.
Monitor: Analytics Making Sense of Performance in Data Analytics Frameworks. Ousterhout et. al, NSDI, 2015.
Monitor: COZ COZ: Finding Code that Counts with Causal Profiling. Curtsinger et. al, USENIX ATC, 2016.
Monitor: Scuba Scuba: Diving into Data at Facebook. Abraham et. al, VLDB, 2013.
Monitor: Imbalance Characterizing Load Imbalance in Real-World Networked Caches. Huanag et. al, HotNets, 2014.
Monitor: End-to-End The Mystery Machine: End-to-end Performance Analysis of Large-scale Internet Services., Chow et. al, OSDI, 2014.
Monitor: Consistency Existential Consistency: Measuring and Understanding Consistency at Facebook. Lu et. al, OSDI, 2015.
Video Analytics  
Video: Chameleon Chameleon: Scalable Adaptation of Video Analytics. Jiang et. al, SIGCOMM, 2018.
Video: Focus Focus: Querying Large Video Datasets with Low Latency and Low Cost. Hsieh et. al, OSDI, 2018.
Video: NoScope NoScope: Optimizing Neural Network Queries over Video at Scale. Kang et. al, VLDB, 2017.
Video: TinyThreads Encoding, Fast and Slow: Low-Latency Video Processing Using Thousands of Tiny Threads. Fouladi et. al, NSDI, 2017.
Video: SVE SVE: Distributed Video Processing at Facebook Scale. Huang et. al, SOSP, 2017.
Potpourri: Runtime, New Hardware Models, Serverless, and Approximation  
Runtime: Weld Weld: A Commom Runtime for High Performance Data Analytics, Palkar et al, CIDR, 2017.
DeepLearning: DeepXplore DeepXplore: Automated Whitebox Testing of Deep Learning Systems, Pei et al, SOSP, 2017.
Serverless: PyWren Occupy the Cloud: Distributed Computing for the 99%, Jonas et al, SoCC, 2017.
Serverless: OpenLambda Serverless Computation with OpenLambda. Hendrickson et. al, HotCloud, 2016.
Serverless: Pocket Pocket: Elastic Ephemeral Storage for Serverless Analytics. Klimovic et. al, OSDI, 2018.
Serverless: Platforms Peeking Behind the Curtains of Serverless Platforms, Wang et. al, USENIX ATC, 2018.
Serverless: SOCK SOCK: Rapid Task Provisioning with Serverless-Optimized Containers, Oakes et. al, USENIX ATC, 2018.
Approx: BlinkDB BlinkDB: Queries with Bounded Errors and Bounded Response Times on Very Large Data, Agarwal et al, Eurosys, 2013.
Approx: BlinkML BlinkML: Efficient Maximum Likelihood Estimation with Probabilistic Guarantees. Park et. al, SIGMOD, 2019.
Approx: Quickr Quickr: Lazily Approximating Complex AdHoc Queries in BigData Clusters. Kandula et. al, SIGMOD, 2016.
RDMA: FaRM FaRM: Fast Remote Memory. Dragojevic et. al, NSDI, 2014.
RDMA: FaRM2 No compromises: distributed transactions with consistency, availability, and performance. Dragojevic et. al, SOSP, 2015.
RDMA: FaSST FaSST: Fast, Scalable and Simple Distributed Transactions with Two-Sided (RDMA) Datagram RPCs. Kalia et. al, OSDI, 2016.
RDMA: eRPC Datacenter RPCs can be General and Fast. Kalia et. al, NSDI, 2019.
RDMA: Locks Distributed Lock Management with RDMA: Decentralization without Starvation. Yoon et. al, SIGMOD, 2018.
RDMA: Infiniswap Efficient Memory Disaggregation with Infiniswap. Gu et. al, NSDI, 2017.
RDMA: Databases Accelerating Relational Databases by Leveraging Remote Memory and RDMA. Li et. al, SIGMOD, 2016.
RDMA: FastNetworks Remote Memory in the Age of Fast Networks. Aguilera et. al, SoCC, 2017.
ML: TPU In-Datacenter Performance Analysis of a Tensor Processing Unit. Jouppi et. al, ISCA, 2017.
Hardware: Catapult A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services. Putnam et. al, ISCA, 2014.
Hardware: Strata Strata: A Cross Media File System. Kwon et. al, SOSP, 2017.
Offload: Floem Floem: A Programming System for NIC-Accelerated Network Applications. Phothilimthana et. al, OSDI, 2018.
Offload: iPipe iPipe: A Framework for Building Datacenter Applications Using In-networking Processors. Liu et. al, 2018.
Offload: Access Direct Universal Access: Making Data Center Resources Available to FPGA. Shu et. al, NSDI, 2019.
Misc: OneSize “One Size Fits All”: An Idea Whose Time Has Come and Gone. Stonebraker and Çetintemel, ICDE, 2005.
Applications: Machine Learning  
ML: ParamServ Scaling Distributed Machine Learning with the Parameter Server, Li et al, OSDI, 2014.
ML: STRADS STRADS: A Distributed Framework for Scheduled Model Parallel Machine Learning, Kim et al, EuroSys, 2016.
ML: TensorFlow TensorFlow: A System for Large-Scale Machine Learning, Abadi et al, OSDI, 2016.
ML: RDBMS Towards a Unified Architecture for in-RDBMS Analytics. Feng et. al, SIGMOD, 2012.
ML: DimmWitted DimmWitted: A Study of Main-Memory Statistical Analytics. Zhang and Re, VLDB, 2014.
DeepLearning: MS Project Adam: Building an Efficient and Scalable Deep Learning Training System, Chilimbi et al, OSDI, 2014.
ML: KeystoneML KeystoneML: Optimizing Pipelines for Large-Scale Advanced Analystics, Sparks et al, ICDE, 2017.
ML: Clipper Clipper: A Low-Latency Online Prediction Serving System, Crankshaw et al, NSDI, 2017.
ML: SLAQ SLAQ: Quality-Driven Scheduling for Distributed Machine Learning, Zhang et al, SoCC, 2017.
ML: TVM TVM: An Automated End-to-End Optimizing Compiler for Deep Learning. Chen et. al, OSDI, 2018.
ML: Janus Janus: Fast and Flexible Deep Learning via Symbolic Graph Execution of Imperative Programs. Jeong et. al, 2018.
ML: Tiresias Tiresias: A GPU Cluster Manager for Distributed Deep Learning. Gu et. al, NSDI, 2019.
ML: Optimus Optimus: An Efficient Dynamic Resource Scheduler for Deep Learning Clusters. Peng et. al, EuroSys, 2018.
ML: Gandiva Gandiva: Introspective Cluster Scheduling for Deep Learning. Xiao et. al, OSDI, 2018.
GraphProc/ML: GraphLab Distributed GraphLab: A Framework for Machine Learning and Data Mining in the Cloud, Low et al, VLDB, 2012.
ML: TuX2 TuX2: Distributed Graph Computation for Machine Learning. TODO
ML: Gaia Gaia: Geo-Distributed Machine Learning Approaching LAN Speeds. TODO
ML: Ray Ray: A Distributed Framework for Emerging AI Applications. Moritz et. al, OSDI, 2018.
ML: MXNet MXNet: A Flexible and Efficient Machine Learning Library for Heterogeneous Distributed Systems. Chen et. al, Neural Information Processing Systems, Workshop on Machine Learning Systems, 2015.
ML: PipeDream PipeDream: Fast and Efficient Pipeline Parallel DNN Training. Harlap et. al, SysML, 2018.
ML: DeepCPU DeepCPU: Serving RNN-based Deep Learning Models 10x Faster. Zhang et. al, USENIX ATC, 2018.
ML: PRETZEL PRETZEL: Opening the Black Box of Machine Learning Prediction Serving Systems. Lee et. al, OSDI, 2018.
ML: Facebook Applied Machine Learning at Facebook: A Datacenter Infrastructure Perspective, Hazelwood et. al, HPCA, 2018.