대용량 메모리 데이타 처리를 위한 범용 하드웨어 기반의 원격 메모리 시스템

Large-Memory Data Processing on a Remote Memory System using Commodity Hardware

  • 정형수 (서울대학교 컴퓨터공학부) ;
  • 한혁 (서울대학교 컴퓨터공학부) ;
  • 염헌영 (서울대학교 컴퓨터공학부)
  • 발행 : 2007.09.15

초록

본 논문에서는 대용량 메모리 데이타 처리를 위한 범용 하드웨어 기반의 원격 메모리 시스템을 제안한다. 느린 디스크와 상대적으로 대단히 빠른 접근 속도를 보장하는 메모리 사이에 존재하게 되는 새로운 메모리 계층을 구현하기 위해, 본 논문에서는 다수의 일반적인 범용 데스크탑 PC들과 원격 직접메모리 접근 (이하 RDMA) 기능이 가능한 고속 네트워크를 최대한 활용하였다. 제안된 새로운 계층의 메모리는 합리적인 응답시간과 용량을 제공함으로서 비교적 적은 양의 성능 부담으로서 대용량의 메모리 상주 데이타베이스를 구동할 수 있게 되었다. 제안된 원격 메모리 시스템은 원격 메모리 페이지들을 관리하게 되는 원격 메모리 시스템과, 원격 메모리 페이지의 교체를 관리하게 되는 원격 메모리 페이저로 구성되어 있다. 범용으로 쓰이는 MySQL과 같은 데이타베이스를 이용한 TPC-C 실험 결과로 볼 때 제안된 원격 메모리 시스템은 일반적인 대용량 메모리 데이타 처리 시스템에서 요구하는 다양한 요구조건을 만족시킬 수 있을 것이라 생각된다.

This article presents a novel infrastructure for large-memory database processing using commodity hardware with operating system support. We exploit inexpensive PCs and a high-speed network capable of Remote Direct Memory Access (RDMA) operations to build a new memory hierarchy between fast volatile memory and slow disk storage. The new memory hierarchy guarantees a reasonable response time, and its storage size enables us to run large-memory database systems with little performance degradation. The proposed architecture has two main components: (1) a remote memory system inside the Linux kernel to manage other computers' memory pages efficiently and (2) a remote memory pager responsible for manipulating remote read/write operations on remote memory pages. We insist that the proposed architecture is practical enough to support the rigorous demands of commercial in-memory database systems by demonstrating the performance of publicly available main-memory databases (e.g., MySQL) on our prototyped system. The experimental results show very interesting results from the TPC-C benchmark.

키워드

참고문헌

  1. D. Black, A. Gupta, and W-D Weber, 'Competitive Management of Distributed Shared Memory,' In Sprint COMPCON 89 Digest of Papers, Feburary 1989
  2. W. Bolosky, M. Scott, and R. Fitzgerald, 'Simple but Effective Techniques for NUMA Memory Management,' In Proceedings of ACM Symposium on Operating System Principle, December 1989
  3. M. Holliday, 'Reference History, Page Size, and Migration Daemons in Local/Remote Architectures,' In Proceedings of the International Symposium on Architectural Support for Programming Languages and Operating Systems, pages 104-112, April 1989
  4. W. Bolosky, M. Scott, and R. Fitzgerald, R. Fowler, and A. Cox, 'NUMA Policies and their Relationship to Memory Architecture,' In Proceedings of the International Symposium on Architectural Support for Programming Languages and Operating Systems, pages 212-221, April 1991
  5. Michael J. Freeley, William E. Morgan, Frederic H. Pighin, Anna R. Karlin, Henry M. Levy, 'Implementing Global Memory Management in a Workstation Cluster,' In Proceedings of ACM Symposium on Operating Systems Principles, December 1995
  6. D. Comer and J. Griffoen, 'A new design for distributed systems: The remote memory model,' In Proceedings of the Summer 1990 USENIX Conference, June 1990
  7. M. J. Frankling, M. J. Carey, and M. Livny, 'Global memory management in client-server DBMS architectures,' In proceedings of the 18th VLDB Conference, August 1992
  8. M. D. Dahlin, R. Y. Wang, T. E. Anderson, and D. A. Paterson, 'Cooperative caching: Using remote client memory to improve ¯le system performance,' In Proceedings of the USENIX Conference on Operating Systems Design and Implementation, November 1994
  9. D. P. Bovet and M. Cesati, 'Understanding the Linux Kernel,' O'REILLY, 2003
  10. M. Gorman, 'Understanding the Linux Virtual Memory Manager,' Prentice Hall, 2004
  11. MySQL AB, 'MySQL,' http://www.mysql.com
  12. PostgreeSQL Development Group, BenchmarkSQL, http://pgfoundry.org/projects/benchmarksql