Thursday, August 30, 2012

Limiting SSD Performance to Prolong Its Life?


In FAST 2012, there is a paper "Lifetime Management of Flash-Based SSDs Using Recovery-Aware Dynamic Throttling".  This work is done by some researchers in Seoul.  It tries to meet SSD's life time guarantee by limiting its write performance so it does not wear out before a predefined number of years.
SSD has limited life time, but SSD in enterprise storage systems should guarantee a certain life time.  Some vendors limit the maximum throughput of SSD so that SSD's life can meet the requirement.  This paper proposes several dynamic throttling algorithms so it does not need to limit peak throughput if there are idle times in the workload.  Such algorithms remind me that some network switches have similar algorithms to limit network bandwidth of some streams for fairness to other streams; also some VBR video encoding algorithms prefetch big frames when the current bit-rate is small to reduce its maximum bandwidth requirement.
Maybe I missed something, but I think increasing the life time of SSD by limiting its performance is a questionable direction for solving this problem.  The point of using SSD is that it has high performance.  Limiting its performance seems to defeat this purpose.  Writing to SSD is the normal wear and tear, and should not be limited, just like car manufactures should not limit the car's running speed to guarantee a car can work for a certain number of years.  If the application needs to write one giga-byte of data, no matter how slow it is, it got to write that amount.  Who gets the benefit if the storage system delays the writes?  You waste the applications' running time and power so that you can let the SSD keep working until it is out of the warranty period?  I think a more meaningful problem in this area could be how to automatically migrate data off an about-to-wear-out SSD and notify admin to replace it.