William Josephson will present his preFPO on Tuesday May 25 at 1:30PM in Room 402. The members of his committee are: Kai Li, advisor; Brian Kernighan and Jen Rexford, readers; Mike Freedman and Doug Clark, nonreaders. Everyone is invited to attend his talk. His abstract follows below. -------------------------------------- Title: Rethinking The Storage Software Stack for Flash Memory Flash memory has recently emerged as an important component of the storage infrastructure in the data center, but presents several unique challenges to storage system designers: individual blocks must be erased before they can be rewritten, block erasure is time consuming, and individual blocks may be erased only a limited number of times. By combining hardware parallelism and a log-structured approach, state of the art flash storage systems can deliver two to three orders of mangitude more I/O operations per second than existing high-performance fibre channel disk drives. Despite the emergence of state of the art solid state disks, the storage software stack has changed little and is still optimized for magnetic disks; the basic abstraction remains a linear array of fix-sized blocks together with a very large DRAM cache to convert user I/O to a smaller number of large I/O transfers. In this talk, we first examine the impact SSDs have had on the utility of the buffer cache. As SSD performance and density improves, the value of very large DRAM based buffer caches declines. We examine the change in tradeoffs through database buffer cache traces and simulation and offer some simple heuristics to take advantage of these changes. Second, we propose a richer interface more suitable for solid-state storage systems. This interface provides for sparse block or object-based allocation, atomic multi-block updates, and a block discard interface to facilitate reclamation of unused storage. Finally, we present DFS, a file system designed specifically for next generation flash memory systems that takes advantage of our proposed storage interface. The result is a much-simplified file system implementation that runs under Linux. In both micro- and application benchmarks DFS shows consistent improvement over ext3 both in throughput and in CPU usage. For direct access DFS delivers as much as a 20% performance improvement in microbenchmarks. On an application level benchmark, DFS outperforms ext3 by 7 to 250% while requiring less CPU power.