An Efficient Design and Implementation of Deduplication on Open-Channel SSDs

Since the number of NAND flash write cycles reaches the upper limit, data cannot be reliably stored. Therefore, the lifespan of Solid State Disks (SSDs) is limited, making it impossible to become a reliable storage device in a write-intensive data center. Deduplication can effectively reduce write traffic and increase the lifespan of SSDs. However, the fingerprint calculation overhead in the traditional data deduplication scheme is too large, which will reduce the write performance of the SSDs. In this paper, we propose a new deduplication scheme D-pblk based on Open-Channel SSDs(OCSSDs), which can reduce fingerprint computing overhead with modern high performance CPUs. In D-pblk, we use the light-weight hash CRC32 to filter most of the non-duplicated data, and When CRC32 is first hit, we read the data from Open-Channel SSDs and calculate the heavy-weight hash SHA-1 for accurate comparison, which reducing fingerprint computing overhead and hardly affects the deduplication rate of workloads. And we use multi-thread to calculate fingerprints in parallel, further reducing fingerprint computing overhead. In addition, we use double ring buffers to solve the problem that the data size after deduplication may not match the size of a flash page. We use FEMU to simulate Open-Channel SSDs for evaluation. The experimental results show that D-pblk can achieve the deduplication rate ranging from 4.61% to 31.63% and the write latency is improved by a factor of up to 29%.

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

[2]  Takashi Watanabe,et al.  DBLK: Deduplication for primary block storage , 2011, 2011 IEEE 27th Symposium on Mass Storage Systems and Technologies (MSST).

[3]  Ming Zhao,et al.  How Much Can Data Compressibility Help to Improve NAND Flash Memory Lifetime? , 2015, FAST.

[4]  Javier González,et al.  LightNVM: The Linux Open-Channel SSD Subsystem , 2017, FAST.

[5]  Hao Wang,et al.  Reducing Solid-State Storage Device Write Stress through Opportunistic In-place Delta Compression , 2016, FAST.

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

[7]  Anand Sivasubramaniam,et al.  Leveraging Value Locality in Optimizing NAND Flash-based SSDs , 2011, FAST.

[8]  Giri Narasimhan,et al.  CacheDedup: In-line Deduplication for Flash Caching , 2016, FAST.

[9]  Cheng Li,et al.  Nitro: A Capacity-Optimized SSD Cache for Primary Storage , 2014, USENIX Annual Technical Conference.

[10]  Ronald L. Rivest,et al.  The MD5 Message-Digest Algorithm , 1992, RFC.

[11]  Jongmoo Choi,et al.  Deduplication in SSDs: Model and quantitative analysis , 2012, 012 IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST).

[12]  Ke Zhou,et al.  LX-SSD : Enhancing the Lifespan of NAND Flash-based Memory via Recycling Invalid Pages , 2017 .

[13]  Meng Zhang,et al.  Enhancing SSD performance with LDPC-aware garbage collection , 2017, 2017 IEEE 6th Non-Volatile Memory Systems and Applications Symposium (NVMSA).

[14]  Tei-Wei Kuo,et al.  Improving Flash Wear-Leveling by Proactively Moving Static Data , 2010, IEEE Transactions on Computers.

[15]  Sungjin Lee,et al.  An integrated approach for managing the lifetime of flash-based SSDs , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[16]  Song Jiang,et al.  WOJ: Enabling Write-Once Full-data Journaling in SSDs by using weak-hashing-based deduplication , 2018, Perform. Evaluation.