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 theexperiences obtained in developing the index manager of the Tachyon, a next-generation MMDBMS. The indexmanager is an essential sub-component of the DBMS used to speed up the retrieval of objects from a largevolume of a database in response to a certain search condition. Previous research efforts on indexing proposed various index structures. However, they hardly dealt with the practical issues occured in implementating an index manager on a target DBMS. In this paper, we touch these issues and present our experiences in developing the index manager on the Tachyon as solutions. The main issues touched are (1) compact representation of an indexentry, (2) support of variable-length keys, (3) support of multiple-attribute keys, (4) support of duplicated keys,(5) definition of external APls, (6) concurrency control, and (7) backup and recovery. We believe that ourcontribution would help MMDBMS developers highly reduce their trial-and-errors.
주기억장치 DBMS(MMDBMS)는 디스크가 아닌 주기억장치를 주요 저장 매체로서 사용하므로 고속의 처리를 요구하는 다양한 데이터베이스 응용을 효과적으로 지원한다. 본 논문에서는 차세대 MMDBMS Tachyon의 인덱스 관리자 개발에 관하여 논의한다. 인덱스 관리자는 객체에 대한 빠른 검색 기능을 지원하는 필수적인 DBMS 서브 컴포넌트이다. 기존의 연구 결과로서 다양한 인덱스 구조가 제안된 바 있으나, 실제 DBMS 상에서 인덱스 관리자를 개발하는 경우에 발생하는 실질적인 이슈들에 대해서는 거의 언급하고 있지 않다. 본 논문에서는 Tachyon의 인덱스 관리자의 개발 중에 경험한 실질적인 구현 이슈들을 언급하고, 이들에 대한 해결 방안을 제시한다. 본 논문에서 다루는 주요 이슈들은 (1) 인덱스 엔트리의 집약적 표헌, (2) 가변 길이 키의 지원, (3) 다중 애트리뷰트 키의 지원, (4) 중복 키의 지원, (5) 외부 API의 정의, (6) 동시성 제어, (7) 백업 및 회복 등이다. 본 연구 결과를 통하여 향후 MMDBMS 개발자들의 시행 착오를 최소화할 수 있으리라 생각된다.