DOI QR코드

DOI QR Code

Analyzing the Overhead of the Memory Mapped File I/O for In-Memory File Systems

메모리 파일시스템에서 메모리 매핑을 이용한 파일 입출력의 오버헤드 분석

  • 최정식 (성균관대학교 정보통신대학) ;
  • 한환수 (성균관대학교 소프트웨어대학)
  • Received : 2016.03.30
  • Accepted : 2016.07.05
  • Published : 2016.10.15

Abstract

Emerging next-generation storage technologies such as non-volatile memory will help eliminate almost all of the storage latency that has plagued previous storage devices. In conventional storage systems, the latency of slow storage devices dominates access latency; hence, software efficiency is not critical. With low-latency storage, software costs can quickly dominate memory latency. Hence, researchers have proposed the memory mapped file I/O to avoid the software overhead. Mapping a file into the user memory space enables users to access the file directly. Therefore, it is possible to avoid the complicated I/O stack. This minimizes the number of user/kernel mode switchings. In addition, there is no data copy between kernel and user areas. Despite of the benefits in the memory mapped file I/O, its overhead still needs to be addressed, as the existing mechanism for the memory mapped file I/O is designed for slow block devices. In this paper, we identify the overheads of the memory mapped file I/O via experiments.

비휘발성 메모리 같은 차세대 저장장치의 등장으로 저장장치 지연시간은 거의 사라질 것이다. 예전에는 저장장치 지연시간이 가장 큰 문제였기 때문에 소프트웨어의 효율성은 중요한 문제가 아니었다. 하지만 이제는 소프트웨어 오버헤드가 해결해야 할 문제점으로 나타나고 있다. 소프트웨어 오버헤드를 최소화하기 위해 많은 연구자들은 메모리 매핑을 이용한 파일 입출력 기법을 제안하고 있다. 메모리 맵 파일 입출력 기법을 사용하면 기존 운영체제의 복잡한 파일 입출력 스택을 피할 수 있을 뿐 아니라 빈번한 사용자/커널 모드 변환도 최소화할 수 있다. 또한 다수의 메모리 복사 오버헤드도 최소화 할 수 있다. 하지만 메모리 맵 파일 입출력 기법에도 해결해야 할 문제점이 존재한다. 메모리 맵 파일 입출력 메커니즘도 느린 블록 디바이스를 효율적으로 관리하기 위해 설계된 기존 운영체제의 일부이기 때문이다. 본 논문에서는 메모리 맵 파일 입출력의 오버헤드 문제점을 설명하고 실험을 통해 그 문제점을 확인한다.

Keywords

Acknowledgement

Supported by : 한국연구재단

References

  1. J. Ousterhout, A. Gupta, A. Kejriwal, C. Lee, B. Montazeri, D. Ongaro, S. J. Park, H. Qin, M. Rosenblum, S, Rumble, R. Stutsman, and S. Yang, "The RAMCloud Storage System," ACM Transactions on Computer Systems, Vol. 33, No. 3, pp. 7:1-7:55, Sep. 2015.
  2. D. Narayanan, O. Hodson, "Whole-System Persistence," Proc. of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'12), pp. 401-410, 2012.
  3. M. Wilcox, AGIGARAM DDR3 NVDIMM [Online]. Available: http://www.agigatech.com/ddr3.php
  4. T. Kawahara, "Scalable Spin-Transfer Torque RAM Technology for Normally-Off Computing," IEEE Design Test of Computers, Vol. 28, No. 1, pp. 52-63, Jan. 2011.
  5. S. Raoux, G. Burr, M. Breitwisch, C. Rettner, Y. Chen, R. Shelby, M. Salinga, D. Krebs, S.-H. Chen, H. L. Lung, and C. Lam, "Phase-change random access memory: A scalable technology," IBM Journal of Research and Development, Vol. 52, No. 4.5, pp. 465-479, Jul. 2008. https://doi.org/10.1147/rd.524.0465
  6. J. Arulraj, A. Pavlo, and S. R. Dulloor, "Let's Talk About Storage & Recovery Methods for Non-Volatile Memory Database Systems," Proc. of the ACM International Conference on Management of Data (SIGMOD'15), pp. 707-722, 2015.
  7. Intel and micron produce breakthrough memory technology [Online]. Available: https://newsroom.intel.com/news-releases/intel-and-micron-producebreakthrough-memory-technology
  8. J. Ahn, D. Kwon, Y. Kim, M. Ajdari, J. Lee, and J. Kim, "DCS: A Fast and Scalable Device-centric Server Architecture," Proc. of the 48th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-48), pp. 559-571, 2015.
  9. A. M. Caulfield, T. I. Mollov, L. A. Eisner, A. De, J. Coburn, and S. Swanson, "Providing safe, user space access to fast, solid state disks," Proc. of the 17th international conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'12), pp. 387-400, 2012.
  10. D. Vucinic, Q. Qang, C. Guyot, R. Mateescu, F. Blagojevic, L. Franca-Neto, D. L. Moal, T. Bunker, J. Xu, and S. Swanson, "DC Express: Shortest Latency Protocol for Reading Phase Change Memory over PCI Express," Proc. of the 12th USENIX Conference on File and Storage Technologies (FAST'14), pp. 309-315, 2014.
  11. J. Yang, D. B. Minturn, and F. Hady, "When poll is better than interrupt," Proc. of the 10th USENIX Conference on File and Storage Technologies (FAST'12), pp. 3-3, 2012.
  12. A. M. Caulfield, A. De, J. Coburn, T. I. Mollov, R. K. Gupta, and S. Swanson, "Moneta: A Highperformance Storage Array Architecture for Nextgeneration, Non-volatile Memories," Proc. of the 43nd Annual IEEE/ACM International Symposium on Microarchitecture (MICRO-43), pp. 385-395, 2010.
  13. J. Coburn, A. M. Caulfield, A. Akel, L. M. Grupp, R. K. Gupta, R. Jhala, and S. Swanson, "NV-heaps: Making Persistent Objects Fast and Safe with Next-generation, Non-volatile Memories," Proc. of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'11), pp. 105-118, 2011.
  14. E. Lee, H. Bahn, and S. H. Noh. "Unioning of the Buffer Cache and Journaling Layers with Nonvolatile Memory," Proc. of the 11th USENIX Conference on File and Storage Technologies (FAST'13), pp. 73-80, 2013.
  15. J. Xu, and S. Swanson, "NOVA: A Log-structured File System for Hybrid Volatile/Non-volatile Main Memories," Proc. of the 14th USENIX Conference on File and Storage Technologies (FAST'16), pp. 323-338, 2016.
  16. S. R. Dulloor, S. Kumar, A. Keshavamurthy, P. Lantz, D. Reddy, R. Sankaran, and J. Jackson, "System Software for Persistent Memory," Proc. of the 9th European Conference on Computer Systems (EuroSys'14), pp. 15:1-15:5, 2014.
  17. X. Wu and A. L. N. Reddy, "SCMFS: A File System for Storage Class Memory," Proc. of the International conference for High Performance Computing, Networking, Storage and Analysis (SC'11), pp. 39:1-39:11, 2011.
  18. C. Hyun, S. Baek, J, Choi, D, Lee, and S. H. Noh, "Design and Implementation of a File System that Considers the Space Efficiency of NVRAM," Journal of KISS: Computer Systems and Theory, Vol. 33, No. 3. pp. 615-625, Sep. 2006.
  19. S. Ryu, H. Kim, and H. Han, "File Write Performance Analysis on Reliability-guaranteed Techniques for Non-Volatile Memory File System," Journal of KIISE: Computing Practices and Letters, Vol. 19, No. 11, pp. 591-595, Nov. 2013.
  20. A. Basu, J. Gandhi, J. Chang, M. D. Jichuan, and M. M. Swift, "Efficient virtual memory for big memory servers," Proc. of the 40th Annual International Symposium on Computer Architecture (ISCA'13), pp. 237-248, 2013.
  21. D.S. Roselli, J.R. Lorch, and T.E. Anderson, "A Comparison of File System Workloads," Proc. of the USENIX Annual Technical Conference (ATC'00), pp. 41-54, 2000.
  22. A.W. Leung, S. Pasupathy, G.R. Goodson, and E.L. Miller, "Measurement and Analysis of Large-Scale Network File System Workloads," Proc. of the USENIX Annual Technical Conference (ATC'08), pp. 213-226, 2008.
  23. Y. Zhang, J. Yang, A. Memaripour, and S. Swanson, "Mojim: A Reliable and Highly-Available Non-Volatile Memory System," Proc. of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'15), pp. 3-18, 2015.
  24. S. Qiu and A.L.N. Reddy, "Exploiting superpages in a nonvolatile memory file system," Proc. of the IEEE 28th Symposium on Mass Storage Systems and Technologies (MSST'12), pp. 1-5, 2012.
  25. MongoDB Journaling and the MMAPv1 Storage Engine [Online]. Available: https://docs.mongodb.org/manual/core/journaling.
  26. How to emulate Persistent Memory [Online]. Available: http://pmem.io/2016/02/22/pm-emulation
  27. M. Wilcox, Add support for NV-DIMMs to ext4 [Online]. Available: https://lwn.net/Articles/613348.