DOI QR코드

DOI QR Code

Log-Structured B-Tree for NAND Flash Memory

NAND 플래시 메모리를 위한 로그 기반의 B-트리

  • 김보경 (한양대학교 컴퓨터공학과) ;
  • 주영도 (강남대학교 컴퓨터미디어공학부) ;
  • 이동호 (한양대학교 컴퓨터공학과)
  • Published : 2008.12.31

Abstract

Recently, NAND flash memory is becoming into the spotlight as a next-generation storage device because of its small size, fast speed, low power consumption, and etc. compared to the hard disk. However, due to the distinct characteristics such as erase-before-write architecture, asymmetric operation speed and unit, disk-based systems and applications may result in severe performance degradation when directly implementing them on NAND flash memory. Especially when a B-tree is implemented on NAND flash memory, intensive overwrite operations may be caused by record inserting, deleting, and reorganizing. These may result in severe performance degradation. Although ${\mu}$-tree has been proposed in order to overcome this problem, it suffers from frequent node split and rapid increment of its height. In this paper, we propose Log-Structured B-Tree(LSB-Tree) where the corresponding log node to a leaf node is allocated for update operation and then the modified data in the log node is stored at only one write operation. LSB-tree reduces additional write operations by deferring the change of parent nodes. Also, it reduces the write operation by switching a log node to a new leaf node when inserting the data sequentially by the key order. Finally, we show that LSB-tree yields a better performance on NAND flash memory by comparing it to ${\mu}$-tree through various experiments.

최근 NAND 플래시 메모리는 하드 디스크에 비해 작고, 속도가 빠르며, 저 전력 소모 등의 장점을 가지고 있어 차세대 저장 매체로 각광받고 있다. 그러나 쓰기-전-소거 구조, 비대칭 연산 속도 및 단위와 같은 독특한 특징으로 인하여, 디스크 기반의 시스템이나 응용을 NAND 플래시 메모리 상에 직접 구현시 심각한 성능저하를 초래할 수 있다. 특히 NAND 플래시 메모리 상에 B-트리를 구현할 경우, 레코드의 잦은 삽입, 삭제 및 재구성에 의한 많은 양의 중첩 쓰기가 발생할 수 있으며, 이로 인하여 급격한 성능 저하가 발생할 수 있다. 이러한 성능 저하를 피하기 위해 ${\mu}$-트리가 제안되었으나, 잦은 노드 분할 및 트리 높이의 빠른 신장 등의 문제점을 가지고 있다. 본 논문에서는 갱신 연산을 위해 특정 단말 노드에 해당하는 로그 노드를 할당하고, 해당 로그 노드에 있는 변경된 데이터를 한 번의 쓰기 연산으로 저장하는 로그 기반의 B-트리(LSB-트리)를 제안한다. LSB-트리는 부모 노드의 변경을 늦추어 추가적인 쓰기 연산의 횟수를 줄일 수 있다는 장점을 가지고 있다. 또한 키 값에 따라 데이터를 순차적으로 삽입할 때, 로그 노드를 새로운 단말 노드로 교환함으로써 추가적인 쓰기 연산의 횟수를 줄일 수 있다. 마지막으로, 다양한 비교 실험을 통하여 ${\mu}$-트리와 비교함으로써 LSB-트리의 우수성을 보인다.

Keywords

References

  1. Samsung Electronics, “64M ${times}$ 8 Bits NAND Flash Memory (K9F1208X0C),” 2007
  2. Samsung Electronics, “2G ${times}$ 8 Bit / 4G ${times}$ 8 Bit / 8G ${times}$ 8 Bit NAND Flash Memory (K9XXG08XXM),” 2007
  3. Artem B. Bityutskiy, “JFFS3 design issues,” http://www.linux-mtd.infradead.org, 2005
  4. Dongwon Kang et al., “${\mu}$-Tree: An Ordered Index Structure for NAND Flash Memory,” Proceedings of the 7th Annual ACM Conference on Embedded Systems Software (ACM EMSOFT 2007), 2007
  5. Patrick O'Neil, Edward Cheng, Dieter Gawlick, Elizabeth (Betty) O'Neil, “The Log-Structured Merge-Tree,” Acta Informatica Vol.33, No.4, 1996 https://doi.org/10.1007/s002360050048
  6. Douglas Comer, “The Ubiquitous B-Tree,” ACM Computing Surveys. 11(2): 121-137, 1979 https://doi.org/10.1145/356770.356776
  7. Sang-Won Lee, Dong-Joo Park, Tae-Sun Chung, Dong-Ho Lee, Sangwon Park, Ha-Joo Song, “A Log Buffer based Flash Translation Layer using Fully Associative Sector Translation,” ACM Transactions on Embedded Computing Systems, Vol.6, No.1 Ariticle 5, 2007 https://doi.org/10.1145/1275986.1275990
  8. Tae-Sun Chung, Dong-Joo Park, Sangwon Park, Dong-Ho Lee, Sang-Won Lee, Ha-Joo Song, “System Software for Flash Memory: A Survey.,” International Conference on Embedded and Ubiquitous Computing, pp.394-404, 2006 https://doi.org/10.1007/11802167_41
  9. Chin-Hsien Wu, Li-Pin Chang, Tei-Wei Kuo, “An Efficient B-Tree Layer for Flash-Memory Storage Systems,” Real-Time and Embedded Computing Systems and Applications (RTCSA), pp.409-430, 2003
  10. KIM, J. S., KIM, J. M.,NOH, S. H.,MIN, S. L., AND CHO, Y. K. 2002. A Space-Efficient Flash Translation Layer for Compactflash Systems. IEEE Transactions on Consumer Electronics 48, 366-375, 2006 https://doi.org/10.1109/TCE.2002.1010143
  11. M. Rosenblum and J. K. Ousterhout, “Thre Design and Implementation of A Log-Structured File System,” ACM Trans. Computer Systems, 10(1):26-52, 1992 https://doi.org/10.1145/146941.146943
  12. Henessy, J. L. and Patterson, D. A. “Computer Architecture: A Quantitative Approach 3rd ed.,” Morgan Kaufmann, San Mateo, CA., 2003