Cache Sensitive T-tree Main Memory Index for Range Query Search

범위질의 검색을 위한 캐시적응 T-트리 주기억장치 색인구조

  • 최상준 (대구카톨릭대학교 컴퓨터정보통신공학과) ;
  • 이종학 (대구카톨릭대학교 컴퓨터정보통신공학부)
  • Published : 2009.10.30

Abstract

Recently, advances in speed of the CPU have for out-paced advances in memory speed. Main-memory access is increasingly a performance bottleneck for main-memory database systems. To reduce memory access speed, cache memory have incorporated in the memory subsystem. However cache memories can reduce the memory speed only when the requested data is found in the cache. We propose a new cache sensitive T-tree index structure called as $CST^*$-tree for range query search. The $CST^*$-tree reduces the number of cache miss occurrences by loading the reduced internal nodes that do not have index entries. And it supports the sequential access of index entries for range query by connecting adjacent terminal nodes and internal index nodes. For performance evaluation, we have developed a cost model, and compared our $CST^*$-tree with existing CST-tree, that is the conventional cache sensitive T-tree, and $T^*$-tree, that is conventional the range query search T -tree, by using the cost model. The results indicate that cache miss occurrence of $CST^*$-tree is decreased by 20~30% over that of CST-tree in a single value search, and it is decreased by 10~20% over that of $T^*$-tree in a range query search.

최근 CPU의 속도는 메모리의 속도에 비해 훨씬 빠르게 향상되었다. 따라서 주기억 장치의 접근이 주기억장치 데이터베이스 시스템의 성능에서 병목현상으로 나타나고 있다. 기억장치 접근 속도를 줄이기 위해 캐시메모리를 이용하지만, 캐시메모리는 요구되는 데이터가 캐시에서 찾을 수 있는 경우에만 기억장치 접근속도를 줄일 수 있다. 본 논문에서는 $CST^*$-트리라는 범위질의를 위한 새로운 캐시 적응 T-트리 색인구조를 제안한다. $CST^*$-트리는 색인 엔트리를 저장하지 않는 축소된 내부노드들을 캐시메모리에 올려 사용함으로써 캐시메모리의 활용도를 높인다. 그리고 인접한 단말노드들과 내부 색인노드들을 링크포인터를 통해 서로 연결함으로써 색인 엔트리들의 순차적 접근을 가능하도록 한다. 본 논문에서는 성능평가를 위한 비용 모델을 개발하고, 이를 이용하여 캐시미스 발생 횟수를 평가하였다. 그 결과 단일키 값 검색에서는 기존의 캐시만을 고려한 CST-트리에 비해 약 20~30%의 캐시미스 발생 횟수가 감소하였고, 범위질의에서는 기존의 범위질의만을 고려한 색인구조인 $T^*$-트리에 비해 약 10~20%의 캐시미스 발생 횟수가 감소하였다.

Keywords

References

  1. D. Comer, "The Ubiquitous B-Tree," ACM Computing survey, No. 11, pp. 121-138, June 1979.
  2. I. H. Lee, J. H. Shim and S. G. Lee, "Fast Rebuilding $B^+$-Trees for Index Recovery," IEICE Transactions on Information and Systems, pp. 2223-2233, 2006.
  3. S. W. Kim, H. S. Won, "Batch Construction of $B^+$-Trees," Proc. of ACM Symposium on Applied Compution 2001, pp. 231-235, 2001.
  4. T. J. Lehman, M. J. Carey, "A Study of Index Structures for Main Memory Database Management Systems," Proc. of the 12th VLDB Conf., Aug. 1986.
  5. K. R. Choi, K. C. Kim, "$T^*$-tree: A Main Memory Database Index Structure for Real Time Application," Proc. of the 3rd International Workshop on RTCSA, pp. 81-88, Nov. 1996.
  6. 최공림, 김기룡, 김경창, “$T^*$-트리: 주기억 데이터베이스에서의 효율적인 색인기법,” 한국통신학회논문지, 제21권 제10호, pp. 2597-2604, 1996년 6월.
  7. A. V. Aho, J. E. Hopcroft and J. D. Ullman, "The Design and Analysis of Computer Algorithms," Addison- Wesley Publishing Company, June 1974.
  8. A. J. Smith, "Cache memories," ACM Computing survey, No. 14, pp. 473-530, Sep. 1982.
  9. J. Rao, K. A. Ross, "Cache Conscious Indexing for Decision-Support in Main Memory," Proc. of the 25th VLDB Conf., pp. 78-89, 1999.
  10. J. Rao, K. A. Ross, "Making $B^+$- Tree Cache Conscious in Main Memory," Proc. of ACM SIGMOD 2000, pp. 475-486, May 2000.
  11. 강대희, 이재원, 이상구, “CSR-트리의 효과적인 범위 검색,” 한국컴퓨터종합학술대회 논문집, 제33권 제1호, pp. 67-69, 2006년 6월.
  12. 이익훈 외 5명, “캐시를 고려한 T-트리 인덱스 구조,” 한국정보과학회 논문지, 제32권 제1호, pp. 12-23, 2005년 2월.
  13. 이재원, 이익훈, 이상구, “쵀대키 값을 이용한 CSR-트리 인덱스의 빠른 재구축,” 한국컴퓨터종합학술대회 논문집, 제32권 제1호(B), pp. 85-87, 2005년 7월.