1. Compatible byte-addressable direct I/O for peripheral memory devices in Linux.
- Author
-
Baek, Sung Hoon and Park, Ki-Woong
- Subjects
- *
COMPUTER storage devices , *ONLINE data processing , *RANDOM access memory , *CLIENT/SERVER computing , *APPLICATION program interfaces - Abstract
Memory devices can be used as storage systems to provide a lower latency that can be achieved by disk and flash storage. However, traditional buffered input/output (I/O) and direct I/O are not optimized for memory-based storages. Traditional buffered I/O includes a redundant memory copy with a disk cache. Traditional direct I/O does not support byte addressing. Memory-mapped direct I/O, which optimizes file operations for byte-addressable persistent memory and appears to the CPU as a main memory. However, it has an interface that is not always compatible with existing applications. In addition, it cannot be used for peripheral memory devices (e.g., networked memory devices and hardware RAM drives) that are not interfaced with the memory bus. This paper presents a new Linux I/O layer, byte direct I/O (BDIO), that can process byte-addressable direct I/O using the standard application programming interface. It requires no modification of existing application programs and can be used not only for the memory but also for the peripheral memory devices that are not addressable by a memory management unit. The proposed BDIO layer allows file systems and device drivers to easily support BDIO. The new I/O achieved 18% to 102% performance improvements in the evaluation experiments conducted with online transaction processing, file server, and desktop virtualization storage. • Buffered I/O requires a disk cache. Direct I/O is not byte-addressable. • Memory-mapped direct file I/O for persistent memory is not compatible for existing applications. • This paper presents a new I/O layer, byte direct I/O (BDIO), in Linux. • BDIO requires no changes of file I/O interface. • BDIO bypasses the page cache even if applications use the buffer I/O interface. • BDIO uses a byte-addressable standard file interface. • BDIO can support peripheral memory devices that cannot be accessed by the MMU. • BDIO was implemented in Linux kernel. [ABSTRACT FROM AUTHOR]
- Published
- 2020
- Full Text
- View/download PDF