A Flash Memory B+-Tree for Efficient Range Searches

효율적 범위 검색을 위한 플래시 메모리 기반 B+-트리

  • 임성채 (동덕여자대학교 컴퓨터학과) ;
  • 박창섭 (동덕여자대학교 컴퓨터학과)
  • Received : 2013.07.08
  • Accepted : 2013.07.25
  • Published : 2013.09.28


During the past decades, the B+-tree has been most widely used as an index file structure for disk-resident databases. For the disk based B+-tree, a node update can be cheaply performed just by modifying its associated disk page in place. However, in case that the B+-tree is stored on flash memory, the traditional algorithms of the B+-tree come to be useless due to the prohibitive cost of in-place updates on flash memory. For this reason, the earlier schemes for flash memory B+-trees usually take an approach that saves B+-tree changes from real-time updates into extra temporary storage. Although that approach can easily prevent frequent in-place updates in the B+-tree, it can suffer from a waste of storage space and prolonged search times. Particularly, it is not allowable to process range searches on the leaf node level. To resolve such problems, we devise a new scheme in which the leaf nodes and their parent node are stored together in a single flash block, called the p-node block.


B+-tree;Flash Memory;Range Searches;Garbage Collection


  1. Stepahan Baumann, "Flashing Databases: Expectations and Limitations," In Proc. of DaMon '10, 2010.
  2. Y. K. Wang, Kazuo Goda, and Masaru Kitsuregawa, "Evaluating Non-In-Place Update Techniques for Flash-Based Transaction Processing Systems," In Proc. of DEXA, pp.777-791, 2009.
  3. G. J. Na, S. W. Lee, and B. K. Moon, "Dynamic In-Page Logging for B+-tree Index," IEEE Trnas. on Knowledge and Data Engineering, Vol.24, No.7, pp.1231-1243, 2012.
  4. S. G. Moon, S. P. Lim, D. J. Park, and S. W. Lee, "Crash Recovery in FAST FTL," LNCS Vol.6399, pp.13-22, 2011.
  5. C. H. Wu, T. W. Kuo, and L. P. Chang, "An Efficient B-tree Layer Implementation for Flash-memory Storage Systems," ACM Transactions on Embedded Computing Systems, Vol.6, No.3, 2007.
  6. 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 Proc. of ICESS '07, 2007.
  7. D. Yinan Li, Bingsheng He, Robin Jun Yang, Qiong Luo, and Ke Yi, "Tree Indexing on Solid State Drives," In Proc. of the VLDB, 2010.
  8. Devesh Agrawal, Deepak Ganesan, Ramesh Sitaraman, Yanlei Diao, and Shashi Singh, "Lazy-Adaptive Tree: an Optimized Index Structure for Flash Devices," In Proc. of VLDB, pp.361-372, 2009(8).
  9. 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.
  10. Sai Tung On, Haibo Hu, Yu Li, and Jianliang Xu, "Flash-Optimized B+-Tree," Journal of Computer Science and Technology, Vol.25, No.3, 2010.
  11. Xiaoyan Xiang, Lihua Yue, Zhanzhan Liu, and Peng Wei, "A Reliable B-Tree Implementation over Flash Memory," SAC 08, 2008.
  12. 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.1, pp.351-385, 1996.
  13. Marcel Kornacker, C. Mohan, and Joseph Hellerstein, "Concurrency and Recovery in Generalized Search Trees," In Proc. of SIGMOD, 1997.
  14. C. Mohan and F. Levine, "ARIES/IM: An Efficient and High Concurrency Index Management Method using Write-ahead Logging," In Proc. of SIGMOD, 1992.
  15. S. C. Lim and M. H. Kim, "Restructuring the concurrent B+-tree with non-blocked search operations," Inf. Sci., Vol.147, No.1-4, 2002.