초록
데이터베이스 관리 시스템의 핵심 알고리즘인 해쉬 조인은 해싱을 위한 메모리가 부족한 경우(즉, 해쉬 테이블 오버플로우) 디스크 입출력를 유발하게 된다 하드디스크를 임시 저장공간으로 사용할 경우, 해쉬 조인의 probing 단계에서 과도한 임의 읽기로 인해 I/O 시간이 성능을 저하시키게 된다. 한편, 플래시메모리 SSD가 저장장치로 각광을 받고 있으며, 머지않아 엔터프라이즈 환경에서 하드디스크를 대체할 것으로 예상 된다 하드디스크와 달리, 기계적인 동작 장치가 없는 플래시메모리 SSD의 경우 임의 읽기에서 빠른 성능을 보이기 때문에 해쉬 조인의 성능을 크게 향상시킬 수 있다. 본 논문에서는 플래시 메모리 SSD를 해쉬 조인을 위한 임시 저장공간으로 사용할 경우의 몇 가지 중요하고 현실적인 이슈들을 다룬다. 우선, 해쉬 조인의 I/O 패턴을 자세히 설명하고, 하드디스크에 비해 플래시메모리 SSD가 수십 배에 가까운 성능 향상을 보이는 이유를 설명한다. 다음으로, 클러스터 크기(즉, 해쉬 조인 알고리즘에서 사용하는 I/O 단위)가 성능에 미치는 영향을 제시하고 분석한다. 마지막으로, 하드디스크의 경우, DBMS의 질의 최적화기가 산출하는 비용이 실 수행시간과 편차가 클 수 있는데 반해, 플래시메모리 SSD의 경우 비용 산출을 정확히 하게 됨을 실험적으로 보인다. 결론적으로, 플래시메모리 SSD를 해쉬 조인을 위한 임시 저장공간으로 사용할 경우, 빠른 성능과 더불어 질의 최적화기의 비용 산출이 훨씬 더 신뢰할 수 있음을 보인다.
Hash join is one of the core algorithms in databases management systems. If a hash join cannot complete in one-pass because the available memory is insufficient (i.e., hash table overflow), however, it may incur a few sequential writes and excessive random reads. With harddisk as the tempoary storage for hash joins, the I/O time would be dominated by slow random reads in its probing phase. Meanwhile, flash memory based SSDs (flash SSDs) are becoming popular, and we will witness in the foreseeable future that flash SSDs replace harddisks in enterprise databases. In contrast to harddisk, flash SSD without any mechanical component has fast latency in random reads, and thus it can boost hash join performance. In this paper, we investigate several important and practical issues when flash SSD is used as tempoary storage for hash join. First, we reveal the va patterns of hash join in detail and explain why flash SSD can outperform harddisk by more than an order of magnitude. Second, we present and analyze the impact of cluster size (i.e., va unit in hash join) on performance. Finally, we emperically demonstrate that, while a commerical query optimizer is error-prone in predicting the execution time with harddisk as temporary storage, it can precisely estimate the execution time with flash SSD. In summary, we show that, when used as temporary storage for hash join, flash SSD will provide more reliable cost estimation as well as fast performance.