DOI QR코드

DOI QR Code

Implementation of a Prefetch method for Secondary Index Scan in MySQL InnoDB Engine

MySQL InnoDB엔진의 Secondary Index Scan을 위한 Prefetch 기능 구현

  • 황다솜 (성균관대학교 전자전기컴퓨터공학과) ;
  • 이상원 (성균관대학교 소프트웨어대학)
  • Received : 2016.08.17
  • Accepted : 2016.11.04
  • Published : 2017.02.15

Abstract

Flash SSDs have many advantages over the existing hard disks such as energy efficiency, shock resistance, and high I/O throughput. For these reasons, in combination with the emergence of innovative technologies such as 3D-NAND and V-NAND for cheaper cost-per-byte, flash SSDs have been rapidly replacing hard disks in many areas. However, the existing database engines, which have been developed mainly assuming hard disks as the storage, could not fully exploit the characteristics of flash SSDs (e.g. internal parallelism). In this paper, in order to utilize the internal parallelism intrinsic to modern flash SSDs for faster query processing, we implemented a prefetching method using asynchronous input/output as a new functionality for secondary index scans in MySQL InnoDB engine. Compared to the original InnoDB engine, the proposed prefetching-based scan scheme shows three-fold higher performance in the case of 16KB-page sizes, and about 4.2-fold higher performance in the case of 4KB-page sizes.

플래시 SSD는 기존 하드디스크에 비해 높은 에너지 효율성, 외부 충격에 강한 내구성, 높은 입출력 처리량 등 여러 장점을 지니고 있다. 따라서 3D-NAND 및 V-NAND 등 단위 용량 당 비용을 획기적으로 개선하는 최신 기술의 등장과 맞물려서, 플래시 SSD가 많은 영역에서 하드디스크를 급격하게 대체하고 있다. 하지만, 주로 하드디스크를 가정하고 개발된 기존 데이터베이스 엔진은 플래시 SSD의 특성 (예를 들어, 내부 병렬성)을 제대로 활용하지 못하고 있다. 본 논문에서는, 더 빠른 질의 처리를 위해 플래시 SSD에 내재한 내부 병렬성을 활용하는 방법으로, MySQL InnoDB엔진에서 보조 인덱스(Secondary Index)를 이용한 스캔을 위해 비 동기적 입출력을 활용한 Prefetch 기능을 구현하였다. Prefetching을 사용한 스캔 기법은, 기존 InnoDB엔진의 보조 인덱스 스캔과 비교해서, 데이터 페이지 크기가 16KB일 경우, 약 3배 이상, 데이터 페이지 크기가 4KB일 경우, 약 4.2배 이상 성능 향상을 보인다.

Keywords

Acknowledgement

Grant : 비휘발성 메모리 기반 개방형 고 성능 DBMS 개발

Supported by : 정보통신기술진흥센터

References

  1. Micheloni, Rino, Alessia Marelli, and Kam Eshghi, Inside solid state drives (SSDs), 1st Ed., pp. 382, Springer Science & Business Media, 2012.
  2. Kang, Woon-Hak, Sang-Won Lee, Bongki Moon, Yang-Suk Kee, and Moonwook Oh, "Durable write cache in flash memory SSD for relational and NoSQL databases." Proc. of the 2014 ACM SIGMOD international conference on Management of data, pp. 529-540. ACM, 2014.
  3. Jae-Hyo Lee, Sang-Won Lee, Chanik Park, "Revisiting Sorted Index Scan with Flash SSDs," EDB 2010, Juju Korea, Aug. 2011.
  4. Hwang, Da-som, Woon-hak Kang, Gihwan Oh, and Sang-won Lee, "Flash-aware index scan in PostgreSQL," Data Engineering Workshops (ICDEW), 2015 31st IEEE International Conference on, pp. 161-166. IEEE, 2015.
  5. Roh, Hongchan, Sanghyun Park, Sungho Kim, Mincheol Shin, and Sang-Won Lee, "B+-tree index optimization by exploiting internal parallelism of flash-based solid state drives," Proc. of the VLDB Endowment 5, No. 4, pp. 286-297, 2011.
  6. MySQL Server ver. 5.6 Soruce code [Online] Available: http://dev.mysql.com/downloads/mysql
  7. MySQL Reference Manual(5.6) [Online] Available: https://dev.mysql.com/doc/refman/5.6/en/