Steven Swanson, UCSD June 2012
Next-generation non-volatile memories (e.g., PCM, STTM, and the memristor) will enable storage systems that are many orders of magnitude faster that commodity disks. In large scale deployments, however, the high cost of these memories will prevent them from supplanting disks as the primary, bulk storage medium. The inevitable result will be hybrid storage systems that use (relatively) small amount of advanced non-volatile memories to cache data stored on disk. With proper design, fast NVM caches should provide much of the performance of a fast NVM-based storage system but at a fraction of the cost. Implementing a fast NVM cache presents a range of novel challenges and opportunities that are absent in systems that cache disk data in DRAM or even flash-based SSDs. Four examples illustrate:
- Challenge: The complexity of detecting and responding to cache hits must be very small. PCIe- attached SSD based on fast NVMs (e.g., our existing prototype) can deliver access latency on the order of a few microseconds. As a result, the common case hit path in the system should include as little software as possible an should not involve any context switches between threads or privilege transitions (e.g., entering or leaving the kernel).
- Opportunity: NVMs provide performance on par with DRAM but are persistent, allowing for more flexibility in cache management policies (e.g., write-back becomes viable).
- Opportunity: PCIe-attached SSD caches can include hardware support to collect data on an appli- cations access patterns, and the caching system can use this information to drive cache management policy.
- Challenge: Cutting edge flash-based SSD-based caching solutions leverage the existence of a complex virtual-to-physical map in the SSD’s flash translation layer to accelerate hit detection. SSDs based on fast NVMs have no need for such a map and maintaining it is, so we will need to develop an alternative approach.
This project will address these challenges and opportunities by extending the design of our prototype SSD for next-generation memories to serve as a cache for data stored on disk or in flash-based SSDs. This will include modifications to the prototype’s hardware and software to define and implement caching policy and implement caching functions. The system will be evaluated by running a range of data-intensive workloads including file server IO traces and databases.