Design and Implementation of a High-Performance Index Manager in a Main Memory DBMS

주기억장치 DBMS를 위한 고성능 인덱스 관리자의 설계 및 구현

  • 김상욱 (한양대학교 정보통신대학) ;
  • 이경태 (강원대학교 컴퓨터정보통신공학과) ;
  • 최완 (한국전자통신연구원 컴퓨터시스템 연구부)
  • Published : 2003.07.01

Abstract

The main memory DBMS(MMDBMS) efficiently supports various database applications that require high performance since it employs main memory rather than disk as a primary storage. In this paper, we discuss the index manager of the Tachyon, a next-generation MMDBMS. Recently, the gap between the CPU processing and main memory access times is becoming much wider due to rapid advance of CPU technology. By devising data structures and algorithms that utilize the behavior of the cache in CPU, we are able to enhance the overall performance of MMDBMSs considerably. In this paper, we address the practical implementation issues and our solutions for them obtained in developing the cache-conscious index manager of the Tachyon. The main issues touched are (1) consideration of the cache behavior, (2) compact representation of the index entry and the index node, (3) support of variable-length keys, (4) support of multiple-attribute keys, (5) support of duplicated keys, (6) definition of the system catalog for indexes, (7) definition of external APIs, (8) concurrency control, and (9) backup and recovery. We also show the effectiveness of our approach through extensive experiments.

주기억장치 DBMS(MMDBMS)는 디스크가 아닌 주기억장치를 주요 저장 매체로서 사용하므로 고속의 처리를 요구하는 다양한 데이터베이스 응용을 효과적으로 지원한다. 본 논문에서는 차세대 MMDBMS Tachyon의 인덱스 관리자 개발에 관하여 논의한다. 최근 하드웨어의 급격한 발전으로 인하여 주기억장치 액세스 속도와 CPU의 처리 속도의 차는 점점 커지고 있다. 따라서 CPU 내에 있는 캐쉬(cache)의 존재를 충분히 활용하는 자료 구조 및 알고리즘을 고안함으로써 MMDBMS의 성능을 크게 개선시킬 수 있다. 본 논문에서는 Tachyon를 위한 캐쉬-인지 인덱스 관리자의 개발 중에 경험한 실질적인 구현 이슈들을 언급하고, 이들에 대한 해결 방안을 제시한다. 본 논문에서 다루는 주요 이슈들은 (1) 캐쉬(cache)의 효과적인 사용, (2)인덱스 엔트리 및 인덱스 노드의 집약적 표현(compact representation). (3) 가변 길이 키(variable-length key)의 지원, (4) 다중 애트리뷰트 키(multiple-attribute key)의 지원, (5) 중복키(duplicated key)의 지원. (6) 인덱스를 위한 시스템 카탈로그의 정의. (7) 외부 API(application programming interface)의 정의. (8) 효과적인 동시성 제어 방안. (9) 효율적인 백업 및 회복 방안 등이다. 또한, 다양한 실험을 통한 성능 분석을 통하여 제안된 인덱스 관리자의 우수성을 규명한다.

Keywords

References

  1. Proc. Intl. Conf. on Very Large Data Bases, VLDB DBMSs on a Modern Processor: Where Does Time Go? A.Ailamaki;D.J.Dewitt;M.D.Hill;D.A.Wood
  2. Proc. Intl. Conf. on COMPCON Design of a Memory Resident DBMS A.Ammann;M.Hanrahan;R.Krishnamurthy
  3. Concurrency Control and Recovery in Database Systems P.Bernstein;V.Hadzilacos;N.Goodman
  4. ACM Computing Surveys v.11 no.2 The Ubiquitous B-Trees D.Comer
  5. Proc. Intl. Conf. on Management of Data, ACM SIGMOD Implementtation Techniques for Main Memory Database Systems D.DeWitt(et al.)
  6. Fundamentals of Database Systems(Second Edition) Elmasri,R.;Navathe,S.B.
  7. ACM Trans. on Database Systems v.4 no.3 Extendible Hashing: A Fast Access Method for Dynamic Files R.Fagin(et al.)
  8. IEEE Trans. on. Knowledge and Data Engineering v.4 no.6 Main Memory Database Systems: An Overview H. Garcia-Molina;K.Salem
  9. Proc. Intl. Conf. on Very Large Data Bases Granularity of Locks in a Shared Data Base J.Gray(et al.)
  10. Transaction Processing: Concepts and Techniques J.Gray;A.Reuter
  11. ACM Computing Surveys v.15 no.4 Principles of Transaction-Oriented Recovery T.Haeder;A.Reuter
  12. Fundamentals of Data Structures in C E. Horowitz;S. Sahni;S. Freed
  13. Proc. Intl. Symp. on Database and Applications(DBA 2002) Design and Implementation of the Index Manager in the Main Memory DBMS S.Kim(et al.)
  14. The Art of Computer Programming D.Knuth
  15. Proc. Intl. Conf. On Very Large Data Bases, VLDB A Study of Index Structures for Main Memory Database Management Systems T.Lehman;M.Carey
  16. Proc. Intl. Conf. On Very Large Data Bases, VLDB Linear Hashing: A New Tool For File and Table Addressing W.Litwin
  17. IBM Research Report RJ6846 ARIES/IM: An Efficient and High Concurrency Index Management Method Using Write-Ahead Logging C.Mohan;F.Levine
  18. ACM Trans. on Database Systems v.17 no.1 ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging C.Mohan(et al.)
  19. Proc. Intl. Conf. On Very Large Data Bases, VLDB Cache Conscious Indexing for Decision-Support in Main Memory J.Rao;K.A.Ross
  20. Proc. Intl. Conf. on Management of Data, ACM SIGMOD Making B+-Trees Cache Conscious in Main Memory J.Rao;K.A.Ross
  21. ACM Computing Surveys v.14 no.3 Cache Memories A.J.Smith
  22. ACM SIGMOD Record v.17 no.1 Special Issue on Real-Time Database Systems S.H.Son(ed.)
  23. ACM Computing Surveys v.10 no.2 Recovery Techniques for Database Systems J.S.M.Verhofstad