FB-tree: a B+-tree for flash-based SSDs

Due to their many advantages, flash-based SSDs (Solid-State Drives) have become a mainstream alternative to magnetic disks for database servers. Nevertheless, database systems, designed and optimized for magnetic disks, still do not fully exploit all the benefits of the new technology. We propose the FB-tree: a combination of an adapted B+-tree, a storage manager, and a buffer manager, all optimized for modern SSDs. Together the techniques enable writing to SSDs in relatively large blocks, thus achieving greater overall throughput. This is achieved by the out-of-place writing, whereby every time a modified index node is written, it is written to a new address, clustered with some other nodes that are written together. While this constantly frees index nodes, the FB-tree does not introduce any garbage-collection overhead, instead relying on naturally occurring free-space segments of sufficient size. As a consequence, the FB-tree outperforms a regular B+-tree in all scenarios tested. For instance, the throughput of a random workload of 75% updates increases by a factor of three using only two times the space of the B+-tree.

[1]  Bingsheng He,et al.  Tree indexing on solid state drives , 2010, Proc. VLDB Endow..

[2]  Sang-Won Lee,et al.  Dynamic in-page logging for flash-aware B-tree index , 2009, CIKM.

[3]  KuoTei-Wei,et al.  An efficient B-tree layer implementation for flash-memory storage systems , 2007 .

[4]  Ramesh K. Sitaraman,et al.  Lazy-Adaptive Tree: An Optimized Index Structure for Flash Devices , 2009, Proc. VLDB Endow..

[5]  Marcus P. Dunn,et al.  A New I/O Scheduler for Solid State Devices , 2010 .

[6]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[7]  Goetz Graefe,et al.  Write-Optimized B-Trees , 2004, VLDB.

[8]  Sang-Won Lee,et al.  Design of flash-based DBMS: an in-page logging approach , 2007, SIGMOD '07.

[9]  Mark Moshayedi,et al.  Enterprise SSDs , 2008, ACM Queue.

[10]  Joonwon Lee,et al.  CFLRU: a replacement algorithm for flash memory , 2006, CASES '06.

[11]  Harumi A. Kuno,et al.  Modern B-tree techniques , 2011, 2011 IEEE 27th International Conference on Data Engineering.

[12]  Andrew S. Tanenbaum,et al.  Modern Operating Systems: Jumpstart Sampling Edition , 2008 .

[13]  Masaru Kitsuregawa,et al.  Evaluating Non-In-Place Update Techniques for Flash-Based Transaction Processing Systems , 2009, DEXA.

[14]  Dennis Shasha,et al.  B-Trees with Inserts and Deletes: Why Free-at-Empty Is Better Than Merge-at-Half , 1993, J. Comput. Syst. Sci..

[15]  Patrick E. O'Neil,et al.  The log-structured merge-tree (LSM-tree) , 1996, Acta Informatica.

[16]  Xiaofeng Meng,et al.  A sequential indexing scheme for flash-based embedded systems , 2009, EDBT '09.

[17]  Peiquan Jin,et al.  CFDC: a flash-aware replacement policy for database buffer management , 2009, DaMoN '09.

[18]  Goetz Graefe,et al.  The Five-Minute Rule 20 Years Later: and How Flash Memory Changes the Rules , 2008, ACM Queue.