Compression and SSD : Where and How ?

Compression is widely used in storage systems to reduce the amount of data that is written to physical storage devices, in order to improve both bandwidth and price per GB. In SSDs, which use NAND flash devices, compression also helps to improve endurance, which is limited to a fixed number of raw bytes written to the media, and to reduce garbage-collection overheads. Compression is typically implemented in one of three layers: the application, the file system or the firmware of the storage device. Our main findings are that compression embedded within the SSD outperforms the built-in host-side compression engines of a well-known database and file systems. Therefore we focus on intra-SSD compression schemes. We investigate the effects of compression granularity and the arrangement of compressed data in NAND flash pages on data reduction and the lifetime of the SSD. We compare several schemes in this design space, some taken from the literature and some new.

[1]  Ilia Petrov,et al.  Page Size Selection for OLTP Databases on SSD Storage , 2010, SBBD.

[2]  Ethan L. Miller,et al.  Adding aggressive error correction to a high-performance compressing flash file system , 2009, EMSOFT '09.

[3]  David D. Chambliss,et al.  Mixing Deduplication and Compression on Active Data Sets , 2011, 2011 Data Compression Conference.

[4]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX ATC, FREENIX Track.

[5]  Xubin He,et al.  Delta-FTL: improving SSD lifetime via exploiting content locality , 2012, EuroSys '12.

[6]  Sungjin Lee,et al.  Improving performance and lifetime of solid-state drives using hardware-accelerated compression , 2011, IEEE Transactions on Consumer Electronics.

[7]  José Luis Núñez,et al.  Gbit/s lossless data compression hardware , 2003, IEEE Trans. Very Large Scale Integr. Syst..

[8]  Jin-Soo Kim,et al.  zFTL: power-efficient data compression support for NAND flash-based consumer electronics devices , 2011, IEEE Transactions on Consumer Electronics.

[9]  Angelos Bilas,et al.  ZBD: Using Transparent Compression at the Block Level to Increase Storage Space Efficiency , 2010, 2010 International Workshop on Storage Network Architecture and Parallel I/Os.

[10]  Rajesh Gupta,et al.  Minerva: Accelerating Data Analysis in Next-Generation SSDs , 2013, 2013 IEEE 21st Annual International Symposium on Field-Programmable Custom Computing Machines.

[11]  Danny Harnik,et al.  A Fast Implementation of Deflate , 2014, 2014 Data Compression Conference.

[12]  Jongmoo Choi,et al.  VSSIM: Virtual machine based SSD simulator , 2013, 2013 IEEE 29th Symposium on Mass Storage Systems and Technologies (MSST).

[13]  Tian Luo,et al.  CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State Drives , 2011, FAST.

[14]  Kern Koh,et al.  A flash compression layer for SmartMedia card systems , 2004, IEEE Transactions on Consumer Electronics.

[15]  Peter Desnoyers,et al.  Active Flash: Out-of-core data analytics on flash storage , 2012, 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).

[16]  Raja Ali Riaz,et al.  Optimized RTL design and implementation of LZW algorithm for high bandwidth applications , 2011 .