An Efficient Flash Memory B-Tree Supporting Very Cheap Node Updates

플래시 메모리 B-트리를 위한 저비용 노드 갱신 기법

  • 임성채 (동덕여자대학교 컴퓨터학과)
  • Received : 2016.06.23
  • Accepted : 2016.07.13
  • Published : 2016.08.28


Because of efficient space utilization and fast key search times, B-trees have been widely accepted for the use of indexes in HDD-based DBMSs. However, when the B-ree is stored in flash memory, its costly operations of node updates may impair the performance of a DBMS. This is because the random updates in B-tree's leaf nodes could tremendously enlarge I/O costs for the garbage collecting actions of flash storage. To solve the problem, we make all the parents of leaf nodes the virtual nodes, which are not stored physically. Rather than, those nodes are dynamically generated and buffered by referring to their child nodes, at their access times during key searching. By performing node updates and tree reconstruction within a single flash block, our proposed B-tree can reduce the I/O costs for garbage collection and update operations in flash. Moreover, our scheme provides the better performance of key searches, compared with earlier flash-based B-trees. Through a mathematical performance model, we verify the performance advantages of the proposed flash B-tree.


Supported by : 동덕여자대학교


  1. S. W. Lee, B. Moon, and C. Park, "Advances in Flash Memory SSD Technology for Enterprise Database Applications," In Proceedings of SIGMOD, 2009.
  2. Stepahan Baumann, Giel de Nijs, Michael Strobel, and Kai-Uwe Sattler, "Flashing Databases: Expectations and Limitations," In Proceedings of DaMon (Data Management on New Hardware), 2010.
  3. Adam Leventhal, "Flash Storage Memory," Communications of the ACM, Vol.51, No.7, pp.47-51, 2008.
  4. S. J. Lee, D. K. Shin, Y. J. Kim, and J. H. Kim, "LAST: Locality-Aware Sector Translation for NAND Flash Memory-based Storage Systems," ACM SIGOPS Review, pp.36-42, 2008.
  5. Asyush Gupta, Y. J. Kim, and Bhuvan Urgaonkar, "DFTL: A Flash Translation Layer Employing Demand-based Selective Caching of Page-level Address Mappings," In Proceedings of ASPLOS, 2009.
  6. G. J. Na, S. W. Lee, and B. K. Moon, "Dynamic In-Page Logging for B+-tree Index," IEEE Transactions on Knowledge and Data Engineering, Vol.24, No.7, pp.1231-1243, 2012.
  7. C. Mohan, Bruce Lindsay, Hamid Pirahesh, and Peter Schwarz, "ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks Using Write-Ahead Logging," ACM Trans. on Database Systems, Vol.17, No.1, pp.94-162, 1992.
  8. Devesh Agrawal, Deepak Ganesan, Ramesh Sitaraman, Yanlei Diao, and Shashi Singh, "Lazy-Adaptive Tree: An Optimized Index Structure for Flash Devices," In Proceedings of VLDB, pp.361-372, Aug. 2009.
  9. S. W. Lee and B. K. Moon, "Design of Flash-based DBMS: An In-page Logging Approach," In Proceedings, of ACM SIGMOD, pp.55-66, 2007.
  10. S. W. Lee and B. K. Moon, "Transactional In-Page Logging for Multiversion Read Consistency and Recovery," In Proceedings of ICDE, pp.876-887, 2011.
  11. Patrick E. O'Neil, Edward Cheng, Dieter Gawlick, and Elizabeth J. O'Neil, "The Log-Structured Merge-Tree (LSM-Tree)," Acta Informatica, Vol.33, No, pp.351-385, 1996.
  12. 임성채, 박창섭, "효율적 범위 검색을 위한 플래시 기반 B+-트리," 한국콘텐츠학회논문지, 제13권, 제9호, pp.28-38, 2013.
  13. Xiaoyan Xiang, Lihua Yue, Zhanzhan Liu, and Peng Wei, "A Reliable B-Tree Implementation over Flash Memory," In Proceedings of ACM SAC, pp.1487-1491, 2008.
  14. 김학철, 박용훈, 윤종현, 서동민, 송석일, 유재수, "Hot 데이터 블록 병합 지연을 이용한 효율적인 메모리 로그 버퍼 관리 기법," 한국콘텐츠학회논문지, 제10권, 제1호, pp.68-77, 2010.
  15. Marcel Kornacker, C. Mohan, and Joseph Hellerstein, "Concurrency and Recovery in Generalized Search Trees," In Proc. Of SIGMOD, 1997.
  16. Mustafa Ganim, George A. Mihaila, Bishwaranjan Bhattacharjee, Kenneth A. Ross, and Christian A. Lan, "SSD Bufferpool Extensions for Database Systems," In Proceedings of VLDB, pp.1435-1446, 2010.
  17. Chin-Hsien Wu, Tei-Wei Kuo, and Li Ping Chang, "An Efficient B-tree Layer Implementation for Flash-memory Storage Systems," ACM Transactions on Embedded Computing Systems, Vol.6, No.3, 2007.
  18. S. W. Park, H. J. Song, and D. H. Lee, "An Efficient Buffer Management Scheme for Implementing a B-Tree on NAND Flash Memory," In Proceedings of ICESS '07, 2007.
  19. Yinan Li, Bingsheng He, Robin J. Yang, Qiong Luo, and Ke Yi, "Tree Indexing on Solid State Derives," In Proceedings of VLDB, pp.1195-1206, 2010.
  20. S. C. Lim and M. H. Kim, "Restructuring the Concurrent B+-tree with Non-blocked Search Operations," Informaction Sciences, Vol.147, pp.123-142, 2002.
  21. Chang Xu, Lidan Show, Gang Chen, Cheng Yan, and Tianlei Hu, "Update Migration: An Efficient B+-tree for Flash Storage," In Proc. of DASFAA, pp.276-290, 2010.
  22. Hua-Wei Fang, Mi-Yen Yeh, Pei-Lun Suei, and Tei-Wei Kuo, "An Adaptive Endurance-aware B+-tree for Flash Memory Storage Systems," IEEE Transactions on Computers, 2013.
  23. H. C. Roh, S. H. Park, S. H. Kim, M. C. Shin, and S. W. Lee, "B+-tree Index Optimization by Exploiting Internal Parallelism of Flash-based Solid State Drives," In Proc. of VLDB, pp.286-297, 2011.