Understanding intrinsic characteristics and system implications of flash memory based solid state drives

Flash Memory based Solid State Drive (SSD) has been called a "pivotal technology" that could revolutionize data storage systems. Since SSD shares a common interface with the traditional hard disk drive (HDD), both physically and logically, an effective integration of SSD into the storage hierarchy is very important. However, details of SSD hardware implementations tend to be hidden behind such narrow interfaces. In fact, since sophisticated algorithms are usually, of necessity, adopted in SSD controller firmware, more complex performance dynamics are to be expected in SSD than in HDD systems. Most existing literature or product specifications on SSD just provide high-level descriptions and standard performance data, such as bandwidth and latency. In order to gain insight into the unique performance characteristics of SSD, we have conducted intensive experiments and measurements on different types of state-of-the-art SSDs, from low-end to high-end products. We have observed several unexpected performance issues and uncertain behavior of SSDs, which have not been reported in the literature. For example, we found that fragmentation could seriously impact performance -- by a factor of over 14 times on a recently announced SSD. Moreover, contrary to the common belief that accesses to SSD are uncorrelated with access patterns, we found a strong correlation between performance and the randomness of data accesses, for both reads and writes. In the worst case, average latency could increase by a factor of 89 and bandwidth could drop to only 0.025MB/sec. Our study reveals several unanticipated aspects in the performance dynamics of SSD technology that must be addressed by system designers and data-intensive application users in order to effectively place it in the storage hierarchy.

[1]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[2]  Song Jiang,et al.  SmartSaver: Turning Flash Drive into a Disk Energy Saver for Mobile Computers , 2006, ISLPED'06 Proceedings of the 2006 International Symposium on Low Power Electronics and Design.

[3]  Jae-Myung Kim,et al.  A case for flash memory ssd in enterprise database applications , 2008, SIGMOD Conference.

[4]  Mahmut T. Kandemir,et al.  DRPM: dynamic speed control for power management in server class disks , 2003, 30th Annual International Symposium on Computer Architecture, 2003. Proceedings..

[5]  Sivan Toledo,et al.  A Transactional Flash File System for Microcontrollers , 2005, USENIX Annual Technical Conference, General Track.

[6]  Kyu Ho Park,et al.  JFTL: A flash translation layer based on a journal remapping for flash memory , 2009, TOS.

[7]  Andrea C. Arpaci-Dusseau,et al.  Journal-guided resynchronization for software RAID , 2005, FAST'05.

[8]  Rina Panigrahy,et al.  Design Tradeoffs for SSD Performance , 2008, USENIX ATC.

[9]  Heeseung Jo,et al.  A superblock-based flash translation layer for NAND flash memory , 2006, EMSOFT '06.

[10]  Steven Swanson,et al.  Gordon: using flash memory to build fast, power-efficient clusters for data-intensive applications , 2009, ASPLOS.

[11]  Antony I. T. Rowstron,et al.  Migrating server storage to SSDs: analysis of tradeoffs , 2009, EuroSys '09.

[12]  Xiaoning Ding,et al.  DULO: an effective buffer cache management scheme to exploit both temporal and spatial locality , 2005, FAST'05.

[13]  Sang-Won Lee,et al.  System Software for Flash Memory: A Survey , 2006, EUC.

[14]  Y. Charlie Hu,et al.  Program counter based techniques for dynamic power management , 2004, 10th International Symposium on High Performance Computer Architecture (HPCA'04).

[15]  Yuanyuan Zhou,et al.  Association Proceedings of the Third USENIX Conference on File and Storage Technologies San Francisco , CA , USA March 31 – April 2 , 2004 , 2004 .

[16]  Sang-Won Lee,et al.  A log buffer-based flash translation layer using fully-associative sector translation , 2007, TECS.

[17]  Tei-Wei Kuo,et al.  An Efficient B-Tree Layer for Flash-Memory Storage Systems , 2003, RTCSA.

[18]  Hyojun Kim,et al.  BPLRU: A Buffer Management Scheme for Improving Random Writes in Flash Storage , 2008, FAST.

[19]  Tei-Wei Kuo,et al.  An efficient R-tree implementation over flash-memory storage systems , 2003, GIS '03.

[20]  Xiaoning Ding,et al.  DiskSeen: Exploiting Disk Layout and Access History to Enhance I/O Prefetch , 2007, USENIX Annual Technical Conference.

[21]  Sivan Toledo,et al.  Algorithms and data structures for flash memories , 2005, CSUR.

[22]  Hiroshi Motoda,et al.  A Flash-Memory Based File System , 1995, USENIX.

[23]  Jeanna Matthews,et al.  Intel® Turbo Memory: Nonvolatile disk caches in the storage hierarchy of mainstream computer systems , 2008, TOS.

[24]  Michael Isard,et al.  A design for high-performance flash disks , 2007, OPSR.

[25]  Stratis Viglas,et al.  Flashing up the storage layer , 2008, Proc. VLDB Endow..

[26]  Adam Leventhal,et al.  Flash storage memory , 2008, CACM.

[27]  Lidong Zhou,et al.  Transactional Flash , 2008, OSDI.

[28]  Bianca Schroeder,et al.  Disk Failures in the Real World: What Does an MTTF of 1, 000, 000 Hours Mean to You? , 2007, FAST.

[29]  Sameh Elnikety,et al.  Migrating enterprise storage to SSDs: analysis of tradeoffs , 2008 .

[30]  Gregory R. Ganger,et al.  The DiskSim Simulation Environment Version 4.0 Reference Manual (CMU-PDL-08-101) , 1998 .

[31]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[32]  Sang Lyul Min,et al.  A space-efficient flash translation layer for CompactFlash systems , 2002, IEEE Trans. Consumer Electron..

[33]  Sang-Won Lee,et al.  Design of flash-based DBMS: an in-page logging approach , 2007, SIGMOD '07.