Publications

Sharding the State Machine: Automated Modular Reasoning for Complex Concurrent Systems

SplinterDB and Maplets: Improving the Tradeoffs in Key-Value Store Compaction Policy

IcebergHT: High Performance Hash Tables Through Stability and Low Associativity

Mosaic Pages: Big TLB Reach with Small Pages

Tiny Pointers

Online List Labeling: Breaking the $\log^2 n$ Barrier

BetrFS: a Compleat File System for Commodity SSDs

Tiny Pointers

External-memory Dictionaries in the Affine and PDAM Models

All-Purpose Hashing

Paging and the Address-Translation Problem

Copy-on-Abundant-Write for Nimble File System Clones

Vector Quotient Filters: Overcoming the Time/Space Trade-Off in Filter Design

How to Not Copy Files

SplinterDB: Closing the Bandwidth Gap for NVMe Key-Value Stores

How to Copy Files

Filesystem aging: It’s more usage than fullness

Small refinements to the DAM can have big consequences for data-structure design

Optimal ball recycling

Efficient Directory Mutations in a Full-Path-Indexed File System

Optimal hashing in external memory

The Full Path to Full-Path Indexing

How to fragment your file system

File Systems Fated for Senescence? Nonsense, Says Science!

The I/O Complexity of Computing Prime Tables