LB-Grid: An SSD efficient Grid File

Abstract Recent advances in non-volatile memory technology have led to the introduction of solid state drives (SSD). NVMe SSDs are the latest development in flash based solid state drives and they were designed as a means of low latency and high bandwidth. Many research studies seek for taking advantage of this new technology to accelerate data management. Multidimensional indexes are fundamental for the efficiency of spatial query processing. In this work, we study the implication of high performance NVMe drives on spatial indexing. More specifically, we present an in-depth performance analysis of the Grid File in flash storage and we introduce LB-Grid, a write efficient variant of Grid File for flash based solid state drives. We present new query algorithms for both LB-Grid and Grid File that exploit the high internal parallelism and I/O bandwidth of NVMe SSDs. Experimental results unveil the efficiency of the proposed algorithms. Utilizing a test set of 500M points, LB-Grid appears to be up to 2.26 times faster than Grid File, up to 5.5 times faster than the R ∗ -tree, and up to 3.3 times faster than the FAST-Rtree in update intensive workloads. On the other hand, the Grid File presents better performance in read intensive workloads; exploiting a batch read operation, it achieves a speedup up to 10.2x in range queries, up to 1.56x in kNN and 4.6x in group point queries.

[1]  Zhifeng Bao,et al.  Tide-tree: A self-tuning indexing scheme for hybrid storage system , 2017, World Wide Web.

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

[3]  Sungho Kim,et al.  AS B-tree: A Study of an Efficient B+-tree for SSDs , 2014, J. Inf. Sci. Eng..

[4]  Jürg Nievergelt,et al.  The Grid File: An Adaptable, Symmetric Multikey File Structure , 1984, TODS.

[5]  Christian S. Jensen,et al.  Read/write-optimized tree indexing for solid-state drives , 2015, The VLDB Journal.

[6]  Cristina Dutra de Aguiar Ciferri,et al.  A Generic and Efficient Framework for Spatial Indexing on Flash-Based Solid State Drives , 2017, ADBIS.

[7]  Chanik Park,et al.  A Re-configurable FTL (Flash Translation Layer) Architecture for NAND Flash based Applications , 2007, 18th IEEE/IFIP International Workshop on Rapid System Prototyping (RSP '07).

[8]  Dimitrios Gunopulos,et al.  Efficient indexing data structures for flash-based sensor devices , 2006, TOS.

[9]  Jin-Soo Kim,et al.  mu-tree: an ordered index structure for NAND flash memory , 2007, EMSOFT.

[10]  Dan Williams,et al.  Platform Storage Performance With 3D XPoint Technology , 2017, Proceedings of the IEEE.

[11]  Yannis Manolopoulos,et al.  Grid File (and Family) , 2009, Encyclopedia of Database Systems.

[12]  Ling Yuan,et al.  Efficient implementation of a multi-dimensional index structure over flash memory storage systems , 2011, The Journal of Supercomputing.

[13]  Dong-Ho Lee,et al.  An Efficient Buffer Management Scheme for Implementing a B-Tree on NAND Flash Memory , 2007, ICESS.

[14]  Stratis Viglas,et al.  Adapting the B + -tree for Asymmetric I/O , 2012, ADBIS.

[15]  H. Howie Huang,et al.  Graphene: Fine-Grained IO Management for Graph Computing , 2017, FAST.

[16]  Michael Cornwell,et al.  Anatomy of a solid-state drive , 2012, CACM.

[17]  Suman Nath,et al.  FAST: A Generic Framework for Flash-Aware Spatial Trees , 2011, SSTD.

[18]  Jing Li,et al.  Log-Compact R-Tree: An Efficient Spatial Index for SSD , 2011, DASFAA Workshops.

[19]  Tae-Sun Chung,et al.  FTL algorithms for NAND-type flash memories , 2011, Des. Autom. Embed. Syst..

[20]  Woo-Cheol Kim,et al.  A B-Tree index extension to enhance response time and the life cycle of flash memory , 2009, Inf. Sci..

[21]  Steven Swanson,et al.  Refactor, Reduce, Recycle: Restructuring the I/O Stack for the Future of Storage , 2013, Computer.

[22]  Cristina Dutra de Aguiar Ciferri,et al.  Analyzing the Performance of Spatial Indices on Hard Disk Drives and Flash-based Solid State Drives , 2017, J. Inf. Data Manag..

[23]  Peiquan Jin,et al.  Optimizing R-tree for flash memory , 2015, Expert Syst. Appl..

[24]  Peiquan Jin,et al.  AD-LRU: An efficient buffer replacement algorithm for flash-based databases , 2012, Data Knowl. Eng..

[25]  Hong Jiang,et al.  Performance impact and interplay of SSD parallelism through advanced commands, allocation strategy and data granularity , 2011, ICS '11.

[26]  Suman Nath,et al.  FlashDB: Dynamic Self-tuning Database for NAND Flash , 2007, 2007 6th International Symposium on Information Processing in Sensor Networks.

[27]  David J. Lilja,et al.  High performance solid state storage under Linux , 2010, 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies (MSST).

[28]  Sangyeun Cho,et al.  YourSQL: A High-Performance Database System Leveraging In-Storage Computing , 2016, Proc. VLDB Endow..

[29]  Maciej Pawlik,et al.  Implementation of the Aggregated R-Tree over Flash Memory , 2012, DASFAA Workshops.

[30]  Stratis Viglas,et al.  Spatial Data Management over Flash Memory , 2011, SSTD.

[31]  Tei-Wei Kuo,et al.  An efficient B-tree layer implementation for flash-memory storage systems , 2007, TECS.

[32]  Rubao Lee,et al.  Internal Parallelism of Flash Memory-Based Solid-State Drives , 2016, ACM Trans. Storage.

[33]  Lihua Yue,et al.  A reliable B-tree implementation over flash memory , 2008, SAC '08.

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

[35]  Rino Micheloni,et al.  3D Flash Memories , 2016, Springer Netherlands.

[36]  Bingsheng He,et al.  Tree Indexing on Flash Disks , 2009, 2009 IEEE 25th International Conference on Data Engineering.

[37]  Athanasios Fevgas,et al.  Grid-File: Towards to a Flash Efficient Multi-dimensional Index , 2015, DEXA.

[38]  Klaus H. Hinrichs,et al.  Implementation of the grid file: Design concepts and experience , 1985, BIT.

[39]  Mrinmoy Ghosh,et al.  Performance analysis of NVMe SSDs and their implication on real world databases , 2015, SYSTOR.

[40]  Peiquan Jin,et al.  OR-Tree: An Optimized Spatial Tree Index for Flash-Memory Storage Systems , 2012, ICDKE.

[41]  Sang-Won Lee,et al.  B+-tree Index Optimization by Exploiting Internal Parallelism of Flash-based Solid State Drives , 2011, Proc. VLDB Endow..

[42]  Sangyeun Cho,et al.  The solid-state drive technology, today and tomorrow , 2015, 2015 IEEE 31st International Conference on Data Engineering.

[43]  Peiquan Jin,et al.  Efficient Buffer Management for Tree Indexes on Solid State Drives , 2014, International Journal of Parallel Programming.

[44]  Dong-Ho Lee,et al.  An efficient index buffer management scheme for implementing a B-tree on NAND flash memory , 2010, Data Knowl. Eng..

[45]  Kyriakos Mouratidis,et al.  Conceptual partitioning: an efficient method for continuous nearest neighbor monitoring , 2005, SIGMOD '05.

[46]  Heon Young Yeom,et al.  An empirical evaluation and analysis of the performance of NVM express solid state drive , 2016, Cluster Computing.

[47]  Yu-Hsun Lin,et al.  A Concurrency Buffer Control in B-Trees for Flash-Memory Storage Systems , 2012, IEEE Embedded Systems Letters.

[48]  Sang-Won Lee,et al.  MPSearch: Multi-Path Search for Tree-based Indexes to Exploit Internal Parallelism of Flash SSDs , 2014, IEEE Data Eng. Bull..

[49]  Tei-Wei Kuo,et al.  An efficient R-tree implementation over flash-memory storage systems , 2003, GIS '03.

[50]  Jin-Soo Kim,et al.  μ*-Tree: An Ordered Index Structure for NAND Flash Memory with Adaptive Page Layout Scheme , 2013, IEEE Trans. Computers.

[51]  Dong-Joo Park,et al.  A Survey of the-State-of-the-Art B-tree Index on Flash Memory , 2016 .

[52]  Sang-Won Lee,et al.  IPLB+-tree for Flash Memory Database Systems , 2011, J. Inf. Sci. Eng..