DOI QR코드

DOI QR Code

AS B-tree: A study on the enhancement of the insertion performance of B-tree on SSD

AS B-트리: SSD를 사용한 B-트리에서 삽입 성능 향상에 관한 연구

  • 김성호 (연세대학교 컴퓨터과학과) ;
  • 노홍찬 (연세대학교 컴퓨터과학과) ;
  • 이대욱 (서강대학교 컴퓨터공학과) ;
  • 박상현 (연세대학교 컴퓨터과학과)
  • Received : 2011.01.18
  • Accepted : 2011.03.14
  • Published : 2011.06.30

Abstract

Recently flash memory has been being utilized as a main storage device in mobile devices, and flashSSDs are getting popularity as a major storage device in laptop and desktop computers, and even in enterprise-level server machines. Unlike HDDs, on flash memory, the overwrite operation is not able to be performed unless it is preceded by the erase operation to the same block. To address this, FTL(Flash memory Translation Layer) is employed on flash memory. Even though the modified data block is overwritten to the same logical address, FTL writes the updated data block to the different physical address from the previous one, mapping the logical address to the new physical address. This enables flash memory to avoid the high block-erase cost. A flashSSD has an array of NAND flash memory packages so it can access one or more flash memory packages in parallel at once. To take advantage of the internal parallelism of flashSSDs, it is beneficial for DBMSs to request I/O operations on sequential logical addresses. However, the B-tree structure, which is a representative index scheme of current relational DBMSs, produces excessive I/O operations in random order when its node structures are updated. Therefore, the original b-tree is not favorable to SSD. In this paper, we propose AS(Always Sequential) B-tree that writes the updated node contiguously to the previously written node in the logical address for every update operation. In the experiments, AS B-tree enhanced 21% of B-tree's insertion performance.

최근 플래시 메모리 및 SSD가 노트북이나 PC의 저장장치로 사용되는 것뿐 아니라, 기업용 서버의 차세대 저장장치로 주목 받고 있다. 대용량의 데이터를 처리하는 데이터베이스에서는 삽입, 삭제, 검색을 빠르게 하기 위해 다양한 색인 기법을 사용하는데 그 중B-트리 구조가 대표적인 기법이다. 하지만 플래시 메모리 상에서는 하드디스크와 달리 덮어쓰기(overwrite) 연산을 수행하기 위해서는 먼저 해당 블록(block)에 대하여 플래시 메모리의 연산 중 가장 비용이 많이 요구되는 삭제(erase) 연산을 수행 해야만 한다. 이러한 문제점을 극복하기 위해 플래시 메모리 사이에 위치하는 플래시 변환 계층(Flash memory Translation Layer)을 사용한다. 이 플래시 변환 계층은 수정한 데이터를 동일한 논리 주소에 덮어쓰기를 하더라도 실제로 임의의 다른 물리 주소에 저장하도록 하여 이 문제를 해결할 수 있다. NAND 플래시 메모리를 배열 형태로 포함하고 있는 SSD는 한 개 이상의 플래시 메모리 패키지를 병렬로 접근할 수 있다. 이러한 병렬 접근 방식을 사용하여 쓰기 연산 성능을 향상하기 위해서는 연속한 논리 주소에 쓰기 연산을 요청하는 것이 유리하다. 하지만 B-트리는 구성 노드에 대한 삽입 삭제 연산 시에 대부분 연속되지 않은 논리 주소 공간에 대한 갱신 연산이 일어나게 된다. 따라서 SSD의 병렬 접근 방식을 최대한 활용할 수 없게 된다. 본 논문에서는 수정한 노드를 연속한 논리 주소에 쓰도록 하는 AS B-트리 구조를 제안하여 SSD의 병렬 접근 방식을 최대한 활용할 수 있도록 하였다. 구현 및 실험한 결과 AS B-트리에서의 삽입 시간이 B-트리보다 21% 개선된 것을 확인하였다.

Keywords

References

  1. 남정현(Jung-hyun Nam), 박동주(Dong-joo Park), "플래시 메모리 상에서 B-트리 설계 및 구현", 정보과학회논문지 : 데이타 베이스 제34권 제2호, 2007. 4.
  2. Feng Chen, David A. Koufaty, and Xiaodong Zhang, "Understanding Intrinsic Characteristics and System Implications of Flash Memory based Solid State Drives", Joint International Conference on Measurement and Modeling of Computer Systems, Proceedings of the eleventh international joint conference on Measurement and modeling of computer systems, 2009.
  3. Dongwon Kang, Dawoon Jung, Jeong-Uk Kang, Jin-Soo Kim, Computer Science Division Korea Advanced Institute of Science and Technology (KAIST), " ${\mu}$-tree: an ordered index structure for NAND flash memory", International Conference On Embedded Software, Proceedings of the 7th ACM & IEEE international conference on Embedded software, 2007. https://doi.org/10.1145/1289927.1289953
  4. Nitin Agrawal, Vijayan Prabhakaran, Ted Wobber, John D. Davis, Mark Manasse, Rina Panigrahy Microsoft Research, Silicon Valley, University of Wisconsin-Madison, "Design tradeoffs for SSD performance", USENIX 2008 Annual Technical Conference on Annual Technical Conference, 2008.
  5. Chen, Feng, Doctor of Philosophy, Ohio State University, Computer Science and Engineering, 2010, "ON PERFORMANCE OPTIMIZATION AND SYSTEM DESIGN OF FLASH MEMORY BASED SOLID STATE DRIVES IN THE STORAGE HIERARCHY", 2010.
  6. CHIN-HSIEN WU, TEI-WEI KUO and Li Ping Chang, National Taiwan University, "An efficient B-tree layer implementation for flash-memory storage systems, ACM Transactions on Embedded Computing Systems (TECS), 2007. 7.