Skip to content

Instantly share code, notes, and snippets.

@Preetam
Last active May 14, 2019 20:53
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save Preetam/befb5edce582398271618e1184ad975a to your computer and use it in GitHub Desktop.
Save Preetam/befb5edce582398271618e1184ad975a to your computer and use it in GitHub Desktop.

Papers

This list is adapted from the lecture plan for the "Advanced Topics in Computer Systems" course at Berkeley, which is available here: https://people.eecs.berkeley.edu/~kubitron/cs262/index_lectures.html

Thanks to Anthony Joseph and John Kubiatowicz for putting the original list together.

Introduction to the course, some basic philosophy, UNIX system.

  • The UNIX Time-Sharing System

Introduction to Databases, System R

  • End-To-End Arguments in System Design
  • A History and Evaluation of System R

File Systems

  • A Fast File System for UNIX
  • Analysis and Evolution of Journaling File Systems

File System Reliability: Bottom Up/Top Down

  • The HP AutoRAID Hierarchical Storage System
  • Finding a needle in Haystack: Facebook’s photo storage

Locking In Systems/Transactions

  • Experience with Processes and Monitors in Mesa
  • Principles of Transaction-Oriented Database Recovery

Transactional Recovery:

  • ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-ahead Logging
  • Segment-Based Recovery: Write-ahead Logging Revisited
  • Lightweight Recoverable Virtual Memory
  • Transactional Flash
  • Rethink the Sync

Transaction Locking and Concurrency

  • Granularity of Locks and Degrees of Consistency in a Shared Database
  • Serializable Isolation for Snapshot Databases
  • The Notions of Consistency and Predicate Locks in a Database System
  • Key Range Locking Strategies for Improved Concurrency

Scheduling and Concurrency

  • Lottery Scheduling: Flexible Proportional-Share Resource Management
  • SEDA: An Architecture for WellConditioned, Scalable Internet Services
  • Integrating Multimedia Applications in Hard Real-Time Systems
  • Implementing Constant-Bandwidth Servers upon Multiprocessor Platforms
  • Time, Clocks, and the Ordering of Events in a Distributed System
  • Efficient Optimistic Concurrency Control Using Loosely Synchronized Clocks

Resource Allocation

  • Composing Parallel Software Efficiently with Lithe
  • Dominant Resource Fairness: Fair Allocation of Multiple Resource Types

Parallel DB

  • Parallel Database Systems: The Future of High Performance Database Systems
  • Spark: Cluster Computing with Working Sets
  • A Comparison of Approaches to Large-Scale Data Analysis
  • Jockey: Guaranteed Job Latency in Data Parallel Clusters

Column Stores

  • C-Store: A Column-oriented DBMS
  • Database Cracking

Routing

  • RouteBricks: Exploiting Parallelism To Scale Software Routers

Virtualization

  • Xen and the Art of Virtualization
  • Are Virtual Machine Monitors Microkernels Done Right?
  • Live Migration of Virtual Machines
  • SnowFlock: Rapid Virtual Machine Cloning for Cloud Computing

Peer To Peer Networks

  • Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications
  • Tapestry: A Resilient Global-scale Overlay for Service Deployment

Distributed Storage

  • Dynamo: Amazon’s Highly Available Key-value Store
  • Pond: the OceanStore Prototype.
  • Bigtable: a distributed storage system for structured data

Paxos

  • Paxos Made Live - An Engineering Perspective
  • Megastore: Providing Scalable, Highly Available Storage for Interactive Services

Byzantine Agreement

  • The Byzantine Generals Problem
  • Practical Byzantine Fault Tolerance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment