Reading and summarizing research papers on multi-tenant QoS support for SSD.

Software Solutions

Open Channel SSD

  • J Huang, et al. FlashBlox: Achieving Both Performance Isolation and Uniform Lifetime for Virtualized SSDs, FAST 2017
    • Contribution
      • A hardware-isolated virtual SSD solution achieving both physical performance isolation and wear leveling.
    • Approach
      • Use open-channel SSD to manage channels, dies and planes directly, thus achieve physical isolation except for some bus sharing.
      • Periodically swap most-wear and least-wear physically isolated units to achieve wear leveling.
    • Evaluation
      • Evaluating tail latencies.
      • Evaluating interference between latency sensitive and throughput sensitive applications.
      • Evaluating migration overhead.

New SSD Architecture

  • J Kang, et al. The Multi-streamed Solid-State Drive, HotStorage 2014
    • Contribution
      • Make SSD accept multiple I/O streams.
    • Approach
      • An I/O stream accepts data with similar lifetime.
      • Data of different streams are stored into different piles of blocks. GCs are separated as well.
    • Evaluation
      • Evaluated the implementation on Cassandra, got higher throughput and lower tail latencies.
  • J Kim, et al. Towards SLO Complying SSDs Through OPS Isolation, FAST 2015
    • Contribution
      • A new SSD architecture that separates OPS (Over Provisioning Space) among different tenants so that GC caused by different tenants are not interfered. This interference hurts because when data is mixed, a single GC might involve data from multiple tenants, and block them.
    • Approach
      • Assign different tags to data from different tenants
      • Inside SSD (implemented in SSD simulator), put data from different tenants to different regions
    • Evaluation
      • Proportioned multi-tenant I/O bandwidth test.
  • S Yan, et al. Tiny-Tail Flash: Near-Perfect Elimination of Garbage Collection Tail Latencies in NAND SSDs, FAST 2017
    • Contribution
      • A new SSD architecture that nearly eliminates GC-blocked I/Os.
    • Approach
      • Plane-blocking GC: Finer grained GC that happens on a specific plane instead of die or channel.
      • Rotating GC: Orchestrating GCs in multiple planes so that they don’t happen at the same time.
      • GC-tolerant read: Use techniques like RAID5 so that data is available when one of the planes is blocked by GC.
      • GC-tolerant flush: Use hardware RAM based write buffer to store write contents temporarily.
    • Evaluation
      • Evaluating tail latencies.