Affiliation:
1. Computer Science, University of Science and Technology of China, Hefei, China
2. CS. Dept, University of Science and Technology of China, Hefei, China
3. SmartX, Beijing, China
4. Virginia Tech, Blacksburg, United States
5. University of Science and Technology of China, Hefei, China
Abstract
Data-intensive applications executing on NVM-based storage systems experience serious bottlenecks when moving data between DRAM and NVM. We advocate for the use of the long-existing but recently neglected on-chip DMA to expedite data movement with three contributions. First, we explore new latency-oriented optimization directions, driven by a comprehensive DMA study, to design a high-performance DMA module, which significantly lowers the I/O size threshold to observe benefits. Second, we propose a new data movement engine,
Fastmove
, that coordinates the use of the DMA along with the CPU with DDIO-aware strategies, judicious scheduling, and load splitting such that the DMA’s limitations are compensated, and the overall gains are maximized. Finally, with a general kernel-based design, simple APIs, and DAX file system integration,
Fastmove
allows applications to transparently exploit the DMA and its new features without code change. We run three data-intensive applications MySQL, GraphWalker, and Filebench atop
NOVA
,
ext4-DAX
, and
XFS-DAX
, with standard benchmarks like TPC-C, and popular graph algorithms like PageRank. Across single- and multi-socket settings, compared to the conventional CPU-only NVM accesses,
Fastmove
introduces to TPC-C with MySQL 1.13–2.16× speedups of peak throughput, reduces the average latency by 17.7–60.8%, and saves 37.1–68.9% CPU usage spent in data movement. It also shortens the execution time of graph algorithms with GraphWalker by 39.7–53.4%, and introduces 1.01–1.48× throughput speedups for Filebench.
Funder
National Nature Science Foundation of China
U.S. National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Reference62 articles.
1. 2023. Filebench. Retrieved January 2023 from https://github.com/filebench/filebench
2. 2023. Graph500. Retrieved January 2023 from https://graph500.org/
3. 2023. MySQL. Retrieved January 2023 from https://github.com/mysql
4. 2023. PMDK. Retrieved January 2023 from https://github.com/pmem/pmdk
5. 2023. TPC Benchamrk C. Retrieved January 2023 from http://tpc.org/tpcc/