An HDD Cache for an SSD?

University of TorontoA colleague – Isilon’s Rob Peglar – pointed out an interesting paper written by researchers at the University of Toronto in collaboration with Microsoft.  The paper makes a case for using an HDD to cache writes to an SSD to improve storage system performance.

“Wait a minute!” you say.  “An HDD as a cache for an SSD?  This can’t be possible!”

According to the paper: Extending SSD Lifetimes with Disk-Based Write Caches   (Soundararajan et al) an HDD can be used to both extend the life of an SSD and to improve its write speed.  Even the paper states that this is: “somewhat contrary to intuition.”

The research tapped into the HDD’s high sequential write speed, a specification that is as good as most SSDs, to write a journal file that would be loaded into the SSD according to certain carefully designed rules.  Writes are coalesced, and repetitive writes to the same block are collapsed into a single write.  Data is written from the log into the SSD sequentially, which speeds this operation while reducing the SSD’s write amplification.

With reduced write traffic the SSD performs fewer background operations, which improves the performance of not only writes but also reads.

Of course, there is a serious penalty if the system tries to read data whose most recent copy is in the HDD rather than the SSD.  The management program, dubbed “Griffin,” is tuned to minimize the occurrence of such events.

The university measured a reduction of 52% in the number of writes presented to the SSD, with average I/O latency reduced by 56%.

Objective Analysis has performed its own tests of performance in systems based on SSDs and HDDs together, and has determine not only that SSDs are an adjunct to HDDs but not a replacement, but we also find that SSDs pose more of a threat to DRAM than they do to HDDs.  See How PC NAND will Undermine DRAM at the Objective Analysis website Reports page.

 

3 Responses to An HDD Cache for an SSD?

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>