Reusable

 

Description

In this video, we run the Reusable FTL on a small SSD with N=32 (32 pages per block) and a Zipf workload. The Reusable FTL implements second writes in SSDPlayer. Each block is first written normally by first writes. When it is chosen by the garbage collector it is either erased or recycled — allocated for second writes without erasure. Upon receiving a write command, if a recycled block is available, a second write is performed on a pair of physical pages in the recycled block whose data has been invalidated.

The video shows that most of the pages are utilized for two writes, but that many of the logical pages written as second writes (blue) are still valid when the block is erased and must be copied to a clean block (checkered). This means that pages written without prior erasure of the block end up occupying newly erased blocks when they are copied, reducing the benefit from second writes. Indeed, only 26 logical writes (out of N×1.5=48 possible) are performed per erasure.