Jieun Kim, Korea Advanced Institute of Science and Technology (KAIST); Joontaek Oh, University of Wisconsin–Madison; Juwon Kim, Seung Won Yoo, and Youjip Won, Korea Advanced Institute of Science and Technology (KAIST)
In this work, we address the issue of ensuring the storage order in the multi-queue IO stack and propose OPIMQ, an Order-Preserving IO Stack for Multi-Queue Block Devices. OPIMQ consists of four key components: Epoch Pinning, Dual-Stream Write, Order-Preserving Mapping Table Update and Sibling-aware Delayed Mapping. With Epoch Pinning, we can preserve intra-stream order dependency across different queues. With Dual-Stream Write, we can preserve the inter-stream order dependency across different threads. With Order-Preserving Mapping Table Update, FTL can update the mapping table with respect to the storage order. With Sibling-Aware Delayed Mapping, FTL can update the mapping table only when the dual-stream write satisfies the storage order in both streams. Linux IO stack with OPIMQ outperforms the vanilla Linux IO stack by 2.9×, 2.8×, and 2.9× under Filebench varmail, dbench, and sysbench, respectively. The order-preserving FTL accompanies a 1.1% performance penalty in address translation compared to legacy FTL.
FAST '25 Open Access Sponsored by
NetApp
Open Access Media
USENIX is committed to Open Access to the research presented at our events. Papers and proceedings are freely available to everyone once the event begins. Any video, audio, and/or slides that are posted after the event are also free and open to everyone. Support USENIX and our commitment to Open Access.

This content is available to:
author = {Jieun Kim and Joontaek Oh and Juwon Kim and Seung Won Yoo and Youjip Won},
title = {{OPIMQ}: Order Preserving {IO} stack for {Multi-Queue} Block Device},
booktitle = {23rd USENIX Conference on File and Storage Technologies (FAST 25)},
year = {2025},
isbn = {978-1-939133-45-8},
address = {Santa Clara, CA},
pages = {425--439},
url = {https://www.usenix.org/conference/fast25/presentation/kim-jieun},
publisher = {USENIX Association},
month = feb
}



