DOI QR코드

DOI QR Code

Locking in Practice : Performance of a Database System on a Multicore Machine

락의 실제 : 멀티코어 상의 데이터베이스 성능 분석

  • 한혁 (동덕여자대학교 컴퓨터학과)
  • Received : 2014.04.18
  • Accepted : 2014.06.18
  • Published : 2014.08.28

Abstract

A lock is a general and popular way of serializing accesses to shared data in multiprocessor environments. After the mutual exclusion was first introduced in 1960s, many spinlock algorithms have been proposed and deployed to real systems such as operating systems and (transactional) database systems. In this study, we measure impacts of a lock mechanism on a database system under various CPU configurations using a high-end multicore system. For the evaluation, we use the most up-to-date version of MySQL (version 5.6) with InnoDB engine, which has been substantially re-architected to improve scalability on multicore machines. We changed the original spinlock function of InnoDB to evaluate various spinlock mechanisms on multicore machines.

락은 멀티프로세서 환경에서 공유 데이터에 대한 접근을 안전하게 하는 잘 알려진 일반적인 방법이다. 1960년대에 상호 배제가 소개된 후에 많은 스핀락 알고리즘이 제안되었고 운영체제나 데이터베이스 시스템에 사용되어 왔다. 이 연구에서 고성능 멀티코어 시스템 상에서 락 알고리즘이 데이터베이스 시스템에 미치는 영향을 측정하였다. 평가를 위해 그 동안 멀티코어 상에서 성능 개선을 위해 재구조화된 최신 MySQL 5.6 및 MySQL에 탑재된 InnoDB 엔진을 사용하였다. InnoDB의 스핀락 함수를 수정하여 다양한 락 알고리즘들을 구현하였고 구현된 락 알고리즘들을 멀티코어 환경에서 평가하였다.

Keywords

References

  1. E. W. Dijkstra, "Solution of a problem in concurrent programming control," Communications of the ACM, Vol.8, No.9, p.569, 1965. https://doi.org/10.1145/365559.365617
  2. D. P. Reed and R. K. Kanodia, "Synchronization with event-counts and sequencers," Communications of the ACM, Vol.22, No.2, pp.115-123, 1979. https://doi.org/10.1145/359060.359076
  3. G. L. Peterson, "Myths about the mutual exclusion problem," Information Processing Letters, Vol.12, No.3, pp.115-116, 1981. https://doi.org/10.1016/0020-0190(81)90106-X
  4. T. E. Anderson, "The performance of spin lock alternatives for shared-memory multiprocessors," IEEE Transactions on Parallel and Distributed Systems, Vol.1, No.1, pp.6-16, 1990. https://doi.org/10.1109/71.80120
  5. J. M. Mellor-Crummey and M. L. Scott, "Algorithms for scalable synchronization on shared-memory multiprocessors," ACM Transactions on Computer Systems, Vol.9, No.1, pp.21-65, 1991. https://doi.org/10.1145/103727.103729
  6. S. Boyd-Wickizer, A. T. Clements, Y. Mao, A. Pesterev, M. F. Kaashoek, R. Morris, and N. Zeldovich, "An analysis of Linux scalability to many cores," in Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation (OSDI), pp.1-8, 2010.
  7. A. T. Clements, F. Kaashoek, and N. Zeldovich, "Scalable Address Spaces Using RCU Balanced Trees," in Proceedings of the 17th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS), 2012.
  8. http://oprofile.sourceforge.net/
  9. http://www.podc.org/dijkstra/2006-dijkstra-prize/