Solid State Drives (SSDs) have become very pop ular recently due to their high performance and other benefits such as shock-resistance. However, SSDs pose some unique and serious challenges to I/O and file system designers because of flash memory's unique properties, such as out-of-place update, wearing-out, and highly asymmetric performance for read, write and erase operations.
Most SSDs employ a log-structured block-based FlashTranslation-Layer (FTL) to solve the out-of-place update prob lem. The performance of FTLs is often highly sensitive to access patterns, especially the write access patterns. For example, sequential write requests see lower overhead than random writes.Moreover, sequential write requests that are not aligned to the flash page boundary may cause extra write and garbage collection operations, increasing overhead and wear-out.In this paper, we present a novel write buffer design based on sophisticated, fine-grain write access pattern analysis. Our scheme identifies access patterns in a per-process per-stream granularity in the OS buffer cache. These patterns are then used to guide the write buffer to improve the write performance of SSDs that employ a log-structured block-based FTL. Simulation results show that our solutions can improve write performance by up to 38%. Moreover, the schemes reduce SSD erase cycles by up to 56%, which is directly translated to a major improvement on the life-span of SSDs.The buffer cache of operating systems has been playing an important and effective role in bridging the performance gap between the slow hard disk devices and faster CPUs. The introduction of SSDs, however, brings up the need to revisit the design of the cache, since SSDs exhibit very different characteristics in read and write operations. For example, prefetching is effective in Hard Disk Drive (HDD)-based sys tems considering HDDs' substantial performance differences between sequential and random read accesses. However, SSDs show a much smaller performance gap between sequential and random read accesses, since there are no long-latency moving parts. As a result, prefetching is not effective in SSD based systems. Also, temporal locality has long been exploited to improve 1/0 performance. However, due to SSDs' out-of place update characteristics, repeatedly writing data to the same location in a SSD will actually cause major performance 978-1-4799-3214-6/13/$31.00 ©2013 IEEE and reliability problems. The issue was not considered in the traditional buffer cache design.In this work, we proposed a novel OS buffer cache design which exploits the fine-grain write access patterns in a per process per-file-stream manner. These patterns will be used to guide the flushing policy for dirty file blocks in the OS buffer cache to address some of the problems which are unique to SSD-based systems.
II. B ACKGROUND
A . Flash MemoryMost SSD devices are based on NAND flash memory technology. In most NAND devices, the basic unit for a read or write operation is a page, which consists of several sectors. For exampl...