Lazy-split B+-tree: a novel B+-tree index scheme for flash-based database systems

Abstract

Flash memory is rapidly being deployed as a data storage medium for embedded systems and tablet computers due to its shock resistance, fast access, and low power consumption, etc. However, it has some intractable characteristics, such as erase-before-write, asymmetric read/write/erase speed, and a limited number of write/erase cycles. Due to these hardware limitations, magnetic disk-based systems and applications can hardly make full use of the advantages of flash memory when adopting it directly for storage. For example, the frequent changes of B-tree can degrade the performance and negatively influence the lifespan of flash memory. Most state-of-the-art studies on flash-aware index design focused mainly on buffer and storage mechanisms whereby they can obtain efficient I/Os to flash memory. In this paper, we identify the problems inherent in the related studies, and then introduce the concepts of lazy-split, modify-two-node, and semi-clean, which make possible the construction of a novel index solution, the Lazy-Split B+-tree (LSB+-tree). In detail, by their introduction, the first concept of LSB+-tree can efficiently reduce the number of node splits, the second can reduce the number of node modifications, and the last can make a further improvement on buffer space utilization and flash writes reduction.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Algorithm 1
Fig. 10
Fig. 11
Fig. 12
Algorithm 2
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17

References

  1. 1.

    Samsung Electronics (2012) NAND flash memory. http://www.samsung.com/sec/business/semiconductor/products/Products.html

  2. 2.

    Chung T-S, Park D-J, Park S et al. (2009) A survey of flash translation layer. J Syst Archit 55:332–343

    Article  Google Scholar 

  3. 3.

    Lee S-W, Park D-j, Chung T-S et al. (2007) A log buffer-based flash translation layer using fully-associative sector translation. ACM Trans Embed Comput Syst 6(3):18

    Article  Google Scholar 

  4. 4.

    Lofgren KMJ, Norman RD, Thelin GB, Gupta A (2003) Wear leveling technique for flash EEPROM systems. United States patent No 6,594,183

  5. 5.

    Lee S-W, Moon B (2007) Design of flash-based DBMS: an in-page logging approach. In: Proceedings of the 2007 ACM SIGMOD international conference on management of data, pp 55–66

    Google Scholar 

  6. 6.

    Kim Y-R, Whang K-Y, Song I-Y (2010) Page-differential logging: an efficient and DBMS-independent approach for storing data into flash memory. In: Proceedings of the 2010 ACM SIGMOD international conference on management of data, Indianapolis, Indiana, 6–11 June, pp 363–374

    Google Scholar 

  7. 7.

    Wu C-H, Kuo T-W, Chang L-P (2007) An efficient B-tree layer implementation for flash-memory storage systems. ACM Trans Embed Comput Syst 6(3):19

    Article  Google Scholar 

  8. 8.

    Nath S, Kansal A (2007) FlashDB: dynamic self-tuning database for NAND flash. In: Proceedings of the 6th international conference on information processing in sensor networks, Cambridge, MA, USA, pp 410–419

    Google Scholar 

  9. 9.

    Agrawal D, Ganesan D, Sitaraman RK et al. (2009) Lazy-adaptive tree: an optimized index structure for flash devices. VLDB J 2(1):361–372

    Google Scholar 

  10. 10.

    Kang D, Jung D, Kang J-u, Kim J-s (2007) μ-Tree: an ordered index structure for NAND flash memory. In: Proceedings of ACM conference on embedded systems software, pp 144–153

    Google Scholar 

  11. 11.

    Na G-J, Moon B, Lee S-W (2011) IPL B+-tree for flash memory database systems. J Inf Sci Eng 27(1):111–147

    Google Scholar 

  12. 12.

    Nath S, Gibbons PB (2010) Online maintenance of very large random samples on flash storage. VLDB J 19(1):67–90

    Article  Google Scholar 

  13. 13.

    Li Y, He B, Yang RJ et al. (2010) Tree indexing on solid state drives. VLDB J 3:1195–1206

    Google Scholar 

  14. 14.

    Jørgensen MV, Rasmussen RB, Šaltenis S, Schjønning C (2011) FB-Tree: AB+-tree for flash-based SSDs. In: Proceedings of the 15th symposium on international database engineering and applications, Lisbon, Portugal, pp 34–42

    Google Scholar 

  15. 15.

    Lee H-S, Lee D-H (2010) An efficient index buffer management scheme for implementing a B-tree on NAND flash memory. Data Knowl Eng 69(9):901–916

    Article  Google Scholar 

  16. 16.

    Roh H, Kim W-C, Kim S, Park S (2009) A B-tree index extension to enhance response time and the life cycle of flash memory. Inf Sci 179(18):3136–3161

    Article  MathSciNet  Google Scholar 

  17. 17.

    Yin S, Pucheral P, Meng X (2009) A sequential indexing scheme for flash-based embedded systems. In: Proceedings of the 12th international conference on extending database technology, Saint-Petersburg, Russia, pp 588–599

    Google Scholar 

  18. 18.

    On ST, Hu H, Li Y, Xu J (2009) Lazy-update B+-tree for flash devices. In: Proceedings of the 10th international conference on mobile data management, Taipei, Taiwan, pp 323–328

    Google Scholar 

  19. 19.

    Park S-Y, Jung D, Kang J-U et al. (2006) CFLRU: a replacement algorithm for flash memory. In: Proceedings of the 2006 international conference on compilers, architecture and synthesis for embedded systems, 23–25 October, Seoul, Korea, pp 234–241

    Google Scholar 

  20. 20.

    Jung H, Shim H, Park S et al. (2008) LRU-WSR: integration of LRU and writes sequence reordering for flash memory. IEEE Trans Consum Electron 54(3):1215–1223

    Article  Google Scholar 

  21. 21.

    Li Z, Jin P, Su X et al. (2009) CCF-LRU: a new buffer replacement algorithm for flash memory. IEEE Trans Consum Electron 55(3):1351–1359

    Article  Google Scholar 

  22. 22.

    Tang X, Meng X (2010) ACR: an adaptive cost-aware buffer replacement algorithm for flash storage devices. In: Proceedings of the international conference on mobile data management, Kansas City, Missouri, USA, pp 33–42

    Google Scholar 

  23. 23.

    Ou Y, Härder T (2010) Clean first or dirty first: a cost-aware self-adaptive buffer replacement policy. In: Proceedings of the 14th international database engineering and applications symposium (IDEAS 2010), 16–18 August, Montreal, Quebec, Canada, pp 7–14

    Google Scholar 

  24. 24.

    Ou Y, Härder T, Jin P (2010) CFDC: a flash-aware buffer management algorithm for database systems. In: Proceedings of the 14th East European conference on advances in databases and information systems. Springer, Berlin, pp 435–449

    Google Scholar 

  25. 25.

    Neapolitan R, Naimipour K (2009) Foundations of algorithms, 4th edn. Jones & Bartlett, Boston

    Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Tae-Sun Chung.

Additional information

The preliminary version of this paper titled “FlashB-Tree: A Novel B-Tree Index Scheme for Solid State Drives” was published in the proceedings of the ACM Research in Applied Computation Symposium (ACM RACS 2011), pages 50–55, ACM New York, NY, USA, Nov., 2011.

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Jin, R., Cho, HJ., Lee, SW. et al. Lazy-split B+-tree: a novel B+-tree index scheme for flash-based database systems. Des Autom Embed Syst 17, 167–191 (2013). https://doi.org/10.1007/s10617-013-9123-4

Download citation

Keywords

  • B+-Tree
  • Splitting policy
  • Replacement algorithm
  • Index manager
  • Flash memory