CSCI 333

Storage Systems

Home | Schedule | Labs | Williams CS | Piazza

Course Schedule

The table below lists the topics we will discuss and the readings associated with each topic. All readings must be completed before their associated meeting. There will be regular in-class assignments, each comprising a portion of your participation grade. These are not "reading checks" designed to create stress: they will involve critical thinking and engagement with the topic rather than memorization. They will be launching points for deeper discussion of the relevant issues.

Additional digital resources (when used) will be posted after each meeting. Some of these resources will only be accessible from within the campus network. Information about the proxy server can be found here.

The scheduled topics are subject to change: we may wish to explore new topics in response to current events or student interest. If you plan to work ahead, please check with me first.

Book references:

Date Topic Reading(s) Handout
01/30 Overview of the Storage Stack
  • Course Syllabus
  • Getting to Know You
  • Course Overview
  • 02/04 File system interfaces and system calls
  • OSTEP Chapter 39
  • Lab 1 Partner Preferences
  • 02/07 Block I/O devices and HDDs
  • OSTEP Chapter 36
  • OSTEP Chapter 37
  • I/O Devices
  • 02/11 HDDs
  • OSTEP Chapter 37
  • HDDs
  • 02/14 VFS and Basic File System Implementations
  • OSTEP Chapter 40
  • VFS
  • 02/18 FAT File System
  • Instructions
  • Wikipedia: File Allocation Table
  • Wikipedia: Design of the FAT file system
  • FAT
  • 02/21 FUSE: Filesystem in Userspace
  • FUSE Repository
  • Harvey Mudd Fuse Docs
  • IBM Docs
  • 02/25 No class meeting
  • FAST '19
  • Lab Work
  • 02/28 FFS-style Update-in-place file systems
  • OSTEP Chapter 41
  • FFS
  • 03/04 Log-structured file systems
  • OSTEP Chapter 43
  • LFS
  • 03/07 Networked File Systems (NFS)
  • OSTEP Chapter 49
  • NFS
  • 03/11 Lab Work
  • Take-home midterm
  • Lab Work
  • 03/14 Lab Work
  • Take-home midterm
  • Lab Work
  • 03/15-03/31 Spring Break
  • Spring Break
  • Spring Break
  • 04/01 Aging
  • File System Aging—Increasing the Relevance of File System Benchmarks
  • How to Fragment Your File System
  • aging
  • 04/04 Newer Block Devices (SSDs)
  • OSTEP Chapter 44
  • SSDs
  • Slides adapted from Tyler Caraza-Harter's SSD slides)
  • 04/08 Newer Block Devices (SMR and IMR)
  • Shingled Magnetic Recording: Areal Density Increase Requires New Data Management (required)
  • Caveat-Scriptor: Write Anywhere Shingled Disks (optional)
  • Skylight—A Window on Shingled Disk Operation (optional, best paper at FAST '15!)
  • SMR
  • Slides
  • 04/11 Hashing & Filters
  • Space/Time Trade-offs in Hash Coding with Allowable Errors (required)
  • Don't Thrash: How to Cache Your Hash on Flash (optional)
  • Cuckoo Filter: Practically Better Than Bloom (optional)
  • filters
  • slides
  • 04/15 B-trees
  • The Ubiquitous B-Tree
  • Slides
  • 04/18 Intro to Write-Optimization & LSM-trees
  • (optional) The Log-Structured Merge-Tree (LSM-Tree)
  • Slides
  • 04/22 B, Bε, or LSM?
    The Battle of the Trees
  • An Introduction to Bε-trees and Write-Optimization
  • Bε-trees
  • Slides
  • 04/25 Write-optimized File Systems
  • BetrFS: A Right-Optimized Write-Optimized File System
  • BetrFS
  • Slides
  • 04/29 Hashing & Deduplication
  • (optional) A Low-bandwidth Network File System
  • (optional) Avoiding the Disk Bottleneck in the Data Domain Deduplication File System
  • Dedup
  • Slides
  • 05/02 Redundant Arrays of Inexpensive Disks (RAID)
  • OSTEP Ch 38: RAID
  • Slides
  • 05/06 The Google File System
  • The Google File System
  • Slides
  • 05/09 MapReduce
  • MapReduce: Simplified Data Processing on Large Clusters
  • (Optional) Lazy Analytics: Let Other Queries Do the Work for You
  • Slides
  • Evaluation

    During most class meetings, participation and preparation will be evaluated using a combination of written/lab work, acitivities, and discussion. It is therefore important that you have completed the assigned readings before each meeting.