A File is Not a File: Understanding the I/O Behavior of Apple Desktop Applications (2011)
We analyze the I/O behavior of iBench, a new collection of productivity and multimedia application workloads. Our analysis reveals a number of differences between iBench and typical file-system workload studies, including the complex organization of modern files, the lack of pure sequential access, the influence of underlying frameworks on I/O patterns, the widespread use of file synchronization and atomic operations, and the prevalence of threads. Our results have strong ramifications for the design of next generation local and cloud-based storage systems.
Hybrid Recovery Management (2010)
Databases need to be able to abort transactions that are partially completed and gracefully recover from unexpected crashes. In this research, we propose a new recovery system that is a hybrid of ARIES and shadowing recovery. We evaluate a prototype of our model on both flash and disk systems.
Design Pattern Checking (2008)
This was my class project for a software artifacts class.
Flash Storage Overview (2008)
This paper describes how flash works, what a file system is, and what techniques flash file systems typically employ. This is for a general audience (no computer science background is necessary). This was the result of a technical communications course