Optimizing Both Cache and Disk Performance of R-Trees

R-Tree를 위한 캐시와 디스크 성능 최적화

  • 박명선 (서울대학교 전기컴퓨터공학부) ;
  • 이석호 (서울대학교 전기컴퓨터공학부)
  • Published : 2003.04.01

Abstract

R-Tree는 일반적으로 트리 노드의 크기를 디스크 페이지의 크기와 같게 함으로써 I/O 성능에 최적이 되도록 구현한다. 최근에는 CPU 캐시 성능을 최적화하는 R-Tree의 변형이 개발되었다. 이는 노드의 크기를 캐시 라인 크기의 수 배로 하고 MBR에 저장되는 키를 압축하여 노드 하나에 더 많은 엔트리를 저장함으로써 가능하였다. 그러나, 디스크 최적 R-Tree와 CPU 캐시 최적 R-Tree의 노드 크기 사이에는 수십-수백 바이트와 수-수십 킬로바이트라는 큰 차이가 있으므로, 디스크 최적 R-Tree는 캐시 성능이 나쁘고, CPU 캐시 최적 H-Tree는 나쁜 디스크 성능을 보이는 문제점을 가지고 있다. 이 논문에서는 CPU 캐시와 디스크에 모두 최적인 R-Tree. TR-Tree를 제안한다. 먼저, 디스크 페이지 안에 들어가는 페이지 내부 트리의 높이와 단말, 중간 노드의 크기를 결정하는 방법을 제시한다. 그리고, 이틀 이용하여 TR-Tree의 검색 연산에 필요한 캐시 미스 수를 최소화였고. TR-Tree의 검색 성능을 최적화하였다. 또한, 디스크 I/O 성능을 최적화하기 위해 메모리 노드들을 디스크 페이지에 잘 맞게 배치하였다. 여기에서 구현한 TR-Tree는 디스크 최적 R-Tree보다 삽입 연산에서 6에서 28배 정도 빨랐으며, 검색 연산에서는 1.28배에서 2배의 성능 향상을 보였다.

Keywords