Abstract
NAND flash memory has been widely used as a storage device for embedded systems because of its fast access speed, low power consumption, and lower noise compared to a hard disk. However, due to its unique characteristics such as the lack of an in-place update and asymmetric operation speed/unit, conventional disk-based systems and applications may experience severe performance degradation when NAND flash memory is used. When a disk-based index structure such as a B-Tree is implemented in flash memory-based storage systems, intensive overwrite operations, which are caused by record insertion, deletion, and reorganization, may result in severe performance degradation. Although several index structures have been proposed to overcome this problem, they suffer from frequent node splits, rapid increments of tree height, and poor space usage. In this paper, we propose a log-structured B-Tree index structure where a log node corresponding to a leaf node is allocated for updating the modified data, and then these data in the log node are stored in a single write operation. Our proposed index structure reduces additional write operations by deferring parent node changes. In addition, the index structure reduces the number of write operations by directly switching the log node to a leaf node if the data are sequentially inserted according to key order. Through various experiments, we show that our proposed index structure performs better than related techniques.
Similar content being viewed by others
References
Chung T-S, Park D-J, Park S, Lee D-H, Lee S-W, Song H-J (2009) A survey of Flash Translation Layer. J Syst Archit 55(5–6):332–343. doi:10.1016/j.sysarc.2009.03.005
Gal E, Toledo S (2005) Algorithms and data structures for flash memories. ACM Comput Surv (CSUR) 37(2):138–163. doi:10.1145/1089733.1089735
Kawaguchi A, Nishioka S, Motoda H (1995) A flash-memory based file system. Paper presented at the proceedings of the USENIX 1995 technical conference proceedings (TCON’95), New Orleans, Louisiana
Samsung Electronics (2010) K9LCG08U1M (32 Gb A-die NAND Flash Multi-Level-Cell) datasheet
Kim J, Kim JM, Noh SH, Min SL, Cho Y (2002) A space-efficient flash translation layer for CompactFlash systems. IEEE Trans Consum Electron 48(2):366–375
Lee S-W, Park D-J, Chung T-S, Lee D-H, Park S, Song H-J (2007) A log buffer-based flash translation layer using fully-associative sector translation. ACM Trans Embed Comput Syst (TECS) 6(3). doi:10.1145/1275986.1275990
Lee H-S, Yun H-S, Lee D-H (2009) HFTL: hybrid flash translation layer based on hot data identification for flash memory. IEEE Trans Consum Electron 55(4):2005–2011
Comer D (1979) Ubiquitous B-tree. ACM Comput Surv (CSUR) 11(2):121–137. doi:10.1145/356770.356776
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 (TECS) 6(3)
Agrawal D, Ganesan D, Sitaraman R, Diao Y, Singh S (2009) Lazy-adaptive Tree: an optimized index structure for flash devices. Paper presented at the VLDB ’09, Lyon, France, Aug 2009
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. doi:10.1016/j.datak.2010.03.004
Bityuckiy AB (2005) JFFS3 design issues. Memory technology device (MTD) subsystem for Linux
Kang D, Jung D, Kang J-U, Kim J-S (2007) \(\mu \)-Tree: an ordered index structure for NAND flash memory. Paper presented at the proceedings of the 7th ACM & IEEE international conference on embedded software (EMSOFT ’07), Salzburg, Austria, Sept 2007
Batory DS (1981) B+ Trees and indexed sequential files: a performance comparison. Paper presented at the proceedings of the 1981 ACM SIGMOD international conference on management of data (SIGMOD ’81), Ann Arbor, Michigan, April 1981
Ramakrishnan R, Gehrke J (1999) Database management systems. McGraw-Hill Inc., New York
Garcia-Molina H, Ullman JD, Widom J (2008) Database systems: the complete book. Prentice Hall Press, Upper Saddle River
Ahn J-S, Kang D, Jung D, Kim J-S, Maeng S (2013) \(\mu \)*-Tree: an ordered index structure for NAND flash memory with adaptive page layout scheme. IEEE Trans Comput 62(4):784–797
Rosenblum M, Ousterhout JK (1992) The design and implementation of a log-structured file system. ACM Trans Comput Syst (TOCS) 10(1):26–52. doi:10.1145/146941.146943
O’Neil P, Cheng E, Gawlick D, O’Neil E (1996) The log-structured merge-tree (LSM-Tree). Acta Informatica 33(4):351–385. doi:10.1007/s002360050048
The OpenSSD Project. http://www.openssd-project.org
Hennessy JL, Patterson DA (2012) Computer architecture: a quantitative approach, 5th edn. Morgan Kaufmann, San Francisco
Acknowledgments
This research was supported by Basic Science Research Program through the National Research of Korea (NRF) funded by the Ministry of Education (2010-0023636, 2013R1A1A2059663).
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Kim, Bk., Lee, DH. LSB-Tree: a log-structured B-Tree index structure for NAND flash SSDs. Des Autom Embed Syst 19, 77–100 (2015). https://doi.org/10.1007/s10617-014-9139-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-014-9139-4