Efficiently Managing the B-tree using Write Pattern Conversion on NAND Flash Memory

낸드 플래시 메모리 상에서 쓰기 패턴 변환을 통한 효율적인 B-트리 관리

  • 박동주 (숭실대학교 대학원 컴퓨터학과) ;
  • 최해기 (숭실대학교 컴퓨터학부)
  • Published : 2009.12.15

Abstract

Flash memory has physical characteristics different from hard disk where two costs of a read and write operations differ each other and an overwrite on flash memory is impossible to be done. In order to solve these restrictions with software, storage systems equipped with flash memory deploy FTL(Flash Translation Layer) software. Several FTL algorithms have been suggested so far and most of them prefer sequential write pattern to random write pattern. In this paper, we provide a new technique to efficiently store and maintain the B-tree index on flash memory. The operations like inserts, deletes, updates of keys for the B-tree generate random writes rather than sequential writes on flash memory, leading to inefficiency to the B-tree maintenance. In our technique, we convert random writes generated by the B-tree into sequential writes and then store them to the write-buffer on flash memory. If the buffer is full later, some sequential writes in the buffer will be issued to FTL. Our diverse experimental results show that our technique outperforms the existing ones with respect to the I/O cost of flash memory.

플래시 메모리는 하드디스크와 다른 물리적 특성을 가진다. 대표적으로 읽기연산과 쓰기연산의 비용이 다르고, 덮어쓰기(overwrite)가 불가능하여 소거연산(erase)이 선행되어야 한다. 이러한 물리적 제약을 소프트웨어적으로 보완해주기 위해서, 플래시 메모리를 사용하는 시스템은 대부분 플래시 변환 계층(Flash Translation Layer)을 사용한다. 현재까지 효율적인 FTL 기법들이 제안되었으며, 이들은 임의쓰기(random writes) 패턴보다 순차쓰기(sequential writes) 패턴에 훨씬 더 효율적으로 동작한단. 본 논문에서는 플래시 메모리 상에서 B-트리 인덱스를 효율적으로 생성, 유지하기 위한 새로운 기법을 제안한다. B-트리에 키의 삽입, 삭제, 수정 등치 연산을 수행하면 FTL에 비효율적인 임의쓰기 패턴을 많이 발생시키며, 결국 B-트리 인덱스 유지 비용이 커지게 된다. 제안하는 기법에서는 B-트리에서 발생되는 임의쓰기 패턴을 먼저 플래시 메모리의 쓰기 버퍼에 추가쓰기(append writes) 패턴으로 변환하여 저장하고, 추후 이를 FTL에 효율적인 순차쓰기 패턴으로 FTL에 전달한다. 다양한 실험을 통해 제안하는 기법이 기존의 기법보다 플래시 메모리 I/O 비용 측면에서 우수하다는 것을 보인다.

Keywords

References

  1. Jung Hyun Nam, Dong-Joo Park, "Design and Implementation of the B-Tree on Flash Memory," Journal of KIPS, vol.34, no.2, April 2007.
  2. J. Kim, J.M. Kim, S.H. Noh, S.L. Min, and Y.Cho, "A Space-Efficient Flash Translation Layer for Compact Flash System," IEEE Transactions on Consumer Electronics, vol.48, no.2, May 2002.
  3. Sang-Won Lee, Dong-Joo Park, Tae-Sun Chung, Dong-Ho Lee, Sangwon Park, and Ha-Joo Song, "A Log Buffer-based Flash Translation Layer using Fully-Associative Sector Translation," ACM Transactions on Embedded Computeing Systems, vol.6, no.3, July 2007.
  4. Chin-Hsien Wu, Li-Pin Chang, Tei-Wei Kuo, "An Efficient B-Tree Layer for Flash-Memory Storage Systems," The 9th International Conference on Real-Time Computeing System and Applications (RTCSA), 2003.
  5. Mendel Rosenblum and John K. Ousterbout, "The Design and Implementation of a Log-Structured File System," ACM Transactions on Computer Systems, February 1992.
  6. David Woodhous, "JFFS : The Jouralling Flash File System," RedHat homepage : http://www.redhat.com.
  7. YAFFS homepage: http://www.alephl.co.uk/armlinux/projects/yaffs