The goal of the Flashlight project at MSR Silicon Valley is to explore existing and new flash architectures and to build tools to aid in that endeavor.
We have so far concentrated in five areas:
SSD Performance: We extend the popular trace-driven disk simulator DiskSim from CMU by introducing SSD (solid state disk) simulation module. We then exercise our simulator under various real workload traces. This simulation allows us to explore how about how real I/O systems (for example those that support transaction processing systems) will perform when using SSDs rather than disks. We explore the performance of several potential organizations of flash chips and to test the efficacy of various cleaning and wear-leveling algorithms under real workloads. Our initial focus is on server-side workloads.
A download of our simulator is available here. You can also browse a slide deck (.pptx) recently presented at WinHEC in Los Angeles and Taipei and a set of posters from MSR TechFest in 2008.
Flash Research Platform: We are building a flexible platform for solid state storage research by integrating FPGAs, DRAM, and Flash devices. The design leverages reconfigurable hardware to provide maximum flexibility for innovative architectural and algorithmic design of the next generation storage systems.
TxFlash: Traditional storage devices export block-based APIs. Supporting atomic multiple-page writes is desirable, but often comes with non-negligible performance penalties. We observe that such penalties might be significantly reduced for flash memory used in SSDs due to its specific properties such as non-overwrite page writes and fast random reads. In TxFlash, we develop a set of protocols for SSDs to support multiple-page writes with ACID properties, explore their performance characteristics, and assess the implications of such an API on higher-level applications such as file systems.
SSD Lifetime:Two trends can derail the adoption of Solid State Devices (SSDs) as a primary storage device: first, general purpose workloads are harder than mobile applications on flash; second, increasing flash densities result in decreased block erase cycles. This combination of stressful workload and fewer erase cycles can significantly reduce SSD lifetime. We propose a hybrid storage device that uses a hard disk drive (HDD) as a write cache for an SSD. Our design is motivated by two observations: First, HDDs can match the sequential write bandwidth of mid-range SSDs. Second, both server and desktop workloads contain a significant fraction of block overwrites. By maintaining a log-structured HDD cache and migrating cached data periodically, our hybrid design reduces writes to the SSD while retaining its excellent performance. We evaluated our system using a variety of I/O traces from Windows and find that it extends SSD lifetime by 2 times and reduces average I/O latency by 42%.
SSD Reliability: Redundancy schemes such as RAID-5 are highly susceptible to correlated failures when used on SSDs: when an old device fails, it's highly probable that some data is not recoverable from the remaining devices. This data loss occurs due to the fact that SSDs wear out and exhibit higher Bit Error Rates (BERs) as they receive more writes. Since conventional RAID schemes balance writes evenly across devices, they wear SSDs out at similar rates. Intuitively, such solutions attempt to protect data on aging devices by storing them on other, equally old devices. We propose Diff-RAID, a parity-based redundancy solution that creates an age differential in an array of SSDs. Diff-RAID distributes parity blocks unevenly across the array, leveraging their higher update rate to age devices at different rates. Diff-RAID is more reliable than RAID-5 for different flash chips by one or more orders of magnitude, and offers a smooth trade-off between reliability and throughput.
- Gokul Soundararajan, Vijayan Prabhakaran, Mahesh Balakrishnan, and Ted Wobber, Griffin: Extending SSD Lifetimes with Disk-Based Write Caches, in FAST 2010: 8th USENIX Conference on File and Storage Technologies (To Appear), USENIX, February 2010
- Asim Kadav, Mahesh Balakrishnan, Vijayan Prabhakaran, and Dahlia Malkhi, Differential RAID: Rethinking RAID for SSD Reliability, in HotStorage 2009: 1st Workshop on Hot Topics in Storage and File Systems, Association for Computing Machinery, Inc., October 2009
- Abhishek Rajimwale, Vijayan Prabhakaran, and John D. Davis, Block Management in Solid-State Devices, in Proceedings of the USENIX Annual Technical Conference (USENIX'09), USENIX, June 2009
- John D. Davis and Lintao Zhang, FRP: a Nonvolatile Memory Research Platform Targeting NAND Flash, in The First Workshop on Integrating Solid-state Memory into the Storage Hierarchy, Held in Conjunction with ASPLOS 2009, Association for Computing Machinery, Inc., March 2009
- Vijayan Prabhakaran, Thomas L. Rodeheffer, and Lidong Zhou, Transactional Flash, in Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’08), USENIX, December 2008
- Nitin Agrawal, Vijayan Prabhakaran, Ted Wobber, John D. Davis, Mark Manasse, and Rina Panigrahy, Design Tradeoffs for SSD Performance, in Proceedings of the 2008 USENIX Technical Conference (USENIX'08), USENIX, June 2008
- Andrew Birrell, Michael Isard, Chuck Thacker, and Ted Wobber, A Design for High-Performance Flash Disks, in Operating Systems Review, vol. 41, no. 2, pp. 88-93, Association for Computing Machinery, Inc., April 2007



