DOI QR코드

DOI QR Code

NAND 플래시 메모리 기반 B+ 트리에서 페이지 매핑 로그를 이용한 색인 관리 기법

Index Management Method using Page Mapping Log in B+-Tree based on NAND Flash Memory

  • 김선환 (영남대학교 컴퓨터공학과) ;
  • 곽종욱 (영남대학교 컴퓨터공학과)
  • Kim, Seon Hwan (Department of Computer Engineering, Yeungnam University) ;
  • Kwak, Jong Wook (Department of Computer Engineering, Yeungnam University)
  • 투고 : 2015.04.09
  • 심사 : 2015.05.16
  • 발행 : 2015.05.30

초록

낸드 플래시 메모리는 저전력, 빠른 접근 속도, 저렴한 가격 등의 특징을 가지고 있어 저장장치로 널리 사용되고 있다. 하지만 낸드 플래시 메모리는 제자리 덮어쓰기가 지원되지 않아 기존의 하드 디스크 기반 응용 프로그램을 구동하기 위해서는 FTL(Flash Translation Layer)이 필요하다. FTL은 주소 매핑, 가비지 컬렉션, 마모도 균등화 작업 등을 포함하고 있어 저사양 임베디드 장치에 구현하기에는 메모리와 연산에 대한 비용이 많이 든다. 그래서 이런 장치들을 위해 낸드 플래시 메모리에 최적화된 색인 자료구조들이 연구되고 있다. 연구된 방법들은 쓰기에 소요되는 시간을 줄여 성능을 향상시켰지만 레코드 탐색에 소요되는 시간이 증가된다는 단점을 가지고 있다. 레코드 탐색시간을 증가시키지 않고 쓰기 횟수를 줄이기 위해 본 논문에서는 페이지 매핑 로그 테이블을 이용한 색인 관리 기법을 제안한다. 낸드 플래시 메모리의 단점인 제자리 덮어쓰기 불가로 인해 발생하는 페이지 쓰기 횟수를 줄이기 위해 매핑 로그 테이블은 B+ 트리에서 변경된 노드 페이지 주소를 저장하고 레코드 검색 시 이를 이용한다. 실험 평가를 통해 제안된 기법은 다른 기법들과 비교 시 레코드 탐색에서 발생하는 페이지 읽기 횟수를 최대 약 61% 줄였으며, 레코드 삽입에서 페이지 쓰기 횟수를 최대 약 31% 줄일 수 있었다.

NAND flash memory has being used for storage systems widely, because it has good features which are low-price, low-power and fast access speed. However, NAND flash memory has an in-place update problem, and therefore it needs FTL(flash translation layer) to run for applications based on hard disk storage. The FTL includes complex functions, such as address mapping, garbage collection, wear leveling and so on. Futhermore, implementation of the FTL on low-power embedded systems is difficult due to its memory requirements and operation overhead. Accordingly, many index data structures for NAND flash memory have being studied for the embedded systems. Overall performances of the index data structures are enhanced by a decreasing of page write counts, whereas it has increased page read counts, as a side effect. Therefore, we propose an index management method using a page mapping log table in $B^+$-Tree based on NAND flash memory to decrease page write counts and not to increase page read counts. The page mapping log table registers page address information of changed index node and then it is exploited when retrieving records. In our experiment, the proposed method reduces the page read counts about 61% at maximum and the page write counts about 31% at maximum, compared to the related studies of index data structures.

키워드

참고문헌

  1. Chung, Tae-Sun, et al. "A survey of flash translation layer." Journal of Systems Architecture, Vol. 55, No. 5, pp. 332-343, May. 2009. https://doi.org/10.1016/j.sysarc.2009.03.005
  2. Kwon, Se Jin, et al. "FTL algorithms for NAND-type flash memories." Design Automation for Embedded Systems, Vol. 15. No. 3-4, pp. 191-224, Dec. 2011. https://doi.org/10.1007/s10617-011-9071-9
  3. Ma, Dongzhe, Jianhua Feng, and Guoliang Li. "A survey of address translation technologies for flash memories." ACM Computing Surveys (CSUR), Vol. 46, No. 3, pp. 1-39, Jan. 2014.
  4. Kang, Dongwon, et al. "$\mu$-Tree: an ordered index structure for NAND flash memory." Proceedings of the 7th ACM & IEEE international conference on Embedded software. ACM, pp. 144-153, Sep. 2007.
  5. Ahn, Jung-Sang, et al. "${\mu}*$-Tree: An Ordered Index Structure for NAND Flash Memory with Adaptive Page Layout Scheme." Computers, IEEE Transactions, Vol. 62, No. 4, pp. 784-797, Apr. 2013. https://doi.org/10.1109/TC.2012.20
  6. Na, Gap-Joo, Bongki Moon, and Sang-Won Lee. "In-page logging $B^{+}$-tree for flash memory." Database Systems for Advanced Applications. Springer Berlin Heidelberg, pp. 755-758, Apr. 2009.
  7. Na, Gap-Joo, Sang-Won Lee, and Bongki Moon. "Dynamic In-Page Logging for $B^{+}$-tree Index", Knowledge and Data Engineering, IEEE Transactions on, Vol. 24, No. 7, pp. 1231-1243, Jul. 2012. https://doi.org/10.1109/TKDE.2011.32
  8. Fang, H., et al. "An Adaptive Endurance-Aware B+-Tree for Flash Memory Storage Systems." Computers, IEEE Transactions, Vol. 63, No. 11, pp. 2661-2673, Nov. 2014. https://doi.org/10.1109/TC.2013.158
  9. Wu, Chin-Hsien, Tei-Wei Kuo, and Li Ping Chang. "An efficient B-tree layer implementation for flash-memory storage systems." ACM Transactions on Embedded Computing Systems (TECS), Vol. 6, No. 3, pp. 19-es, Jul. 2007. https://doi.org/10.1145/1275986.1275991
  10. Agrawal, Devesh, et al. "Lazy-adaptive tree: An optimized index structure for flash devices." Proceedings of the VLDB Endowment, Vol. 2, No. 1, pp. 361-372, Aug. 2009
  11. Nath, Suman, and Aman Kansal. "FlashDB: dynamic self-tuning database for NAND flash." Proceedings of the 6th international conference on Information processing in sensor networks. ACM, pp. 410-419, Apr. 2007.
  12. Sanghun Yun, Haengrae Cho. "An Embedded Text Index System for Mass Flash Memory", Journal of KSCI, pp. 1-10, Vol. 14, No. 6, Jun. 2009.(in Korean)
  13. Li, Xiang, Zhou Da, and Xiaofeng Meng. "A new dynamic hash index for flash-based storage." Web-Age Information Management, 2008. WAIM'08. The Ninth International Conference on. IEEE, pp. 93-98, Jul. 2008.
  14. Sang-Ho Hwang, Jong Wook Kwak. "CL-Tree: B+ tree for NAND Flash Memory using Cache Index List", Journal of KSCI, pp. 1-10, Vol. 20, No. 4, Apr. 2015.(in Korean)
  15. Bityuckiy, Artem B. "JFFS3 design issues." Memory technology device (MTD) subsystem for Linux, 2005.
  16. Hardware spec, http://docs.cubieboard.org/tutorials/cubietruck/start.