A Parallel Bulk Loading Method for $B^+$-Tree Using CUDA

CUDA를 활용한 병렬 $B^+$-트리 벌크로드 기법

  • 성주호 (명지대학교 컴퓨터공학과) ;
  • 이윤우 (명지대학교 컴퓨터공학과) ;
  • 한아 (명지대학교 컴퓨터공학과) ;
  • 최원익 (인하대학교 정보통신공학과) ;
  • 권동섭 (명지대학교 컴퓨터공학과)
  • Received : 2009.12.23
  • Accepted : 2010.03.05
  • Published : 2010.06.15

Abstract

Most relational database systems provide $B^+$-trees as their main index structures, and use bulk-loading techniques for creating new $B^+$-trees on existing data from scratch. Although bulk loadings are more effective than inserting keys one by one, they are still time-consuming because they have to sort all the keys from large data. To improve the performance of bulk loadings, this paper proposes an efficient parallel bulk loading method for $B^+$-trees based on CUDA, which is a parallel computing architecture developed by NVIDIA to utilize computing powers of graphic processor units for general purpose computing. Experimental results show that the proposed method enhance the performance more than 70 percents compared to existing bulk loading methods.

대부분의 관계형 데이터베이스 시스템은 대량의 키 값을 효율적으로 검색하고 관리하기 위하여 $B^+$-트리 기반의 인덱스 구조를 사용하며, $B^+$-트리를 효율적으로 생성하기 위해 일반적으로 상향식 벌크로드 기법을 사용한다. 비록 벌크로드 기법이 키를 하나씩 삽입하여 인덱스를 생성하는 방식보다 효율적이긴 하지만, 데이터가 클 경우 전체 데이터를 정렬해야하기 때문에 많은 시간을 필요로 한다. 벌크로드 기법의 성능을 개선하기 위하여, 본 논문에서는 NDIVIA에서 제공하는 병렬 컴퓨팅 아키텍쳐인 CUDA를 활용한 GPU 기반의 효율적인 $B^+$-트리 병렬 벌크로드 기법을 제안한다. 제안하는 병렬 벌크로드 기법의 성능을 증명하기 위하여 실험을 수행한 결과, 기존 CPU 벌크로드 방법보다 약 70% 이상 성능이 향상됨을 확인하였다.

Keywords

References

  1. NVIDIA CUDA (Compute Unified Device Architecture), http://www.nvidia.com/object/cuda _home.html
  2. Comer, D., "The Ubiquitous B-Trees," ACM : Computing Surveys, vol.11, no.2, pp.121-137, 1972.
  3. 김상욱, 황환규, 황규영, "B+ 트리를 위한 벌크 로드 알고리즘", 한국정보과학회 학술발표논문집, 제22권 제2호(A), pp.243-246, 1995.
  4. Sun, C., Agrawal, D. and El-Abbadi, A., "Hardware acceleration for spatial selections and joins," Proc. of the 2003 ACM SIGMOD International Conference on Management of Data, pp.455-466, 2003.
  5. Govindaraju, N., Lloyd, B., Wang, W., Lin, M. and Manocha, D., "Fast computation of database operations using graphics processors," Proc. of the 2004 ACM SIGMOD International Conference on Management of Data, pp.206-217, 2004.
  6. Yang, K., He, B., Fang, R., Lu, M., Govindaraju, N., Luo, Q., Sander, P. and Shi, J., "In-memory grid files on graphics processors," Proc. of the 3rd International Workshop on Data Management on New Hardware, pp.1-7, 2007.
  7. He, B., Yang, K., Fang, R., Lu, M., Govindaraju, N., Luo, Q. and Sander, P., "Relational joins on graphics processors," Proc. of the 2008 ACM SIGMOD International Conference on Management of Data, pp.511-524, 2008.
  8. Fang, W., Lu, M., Xiao, X., He, B. and Luo, Q., "Frequent itemset mining on graphics processors," Proc. of the 5th International Workshop on Data Management on New Hardware, pp.34-42, 2009.
  9. Satish, N., Harris, M. and Garland, M., "Designing Efficient Sorting Algorithms for Manycore GPUs," Proc. of the 2009 IEEE International Symposium on Parallel&Distributed Processing, pp.1-10, 2009.