Block-Based Multi-Version B+-Tree for Flash-Based Embedded Database Systems

In this paper, we propose a novel multi-version B $^+$ -tree index structure, called block-based multi-version B $^+$ -tree ( BbMVBT), for indexing multi-versions of data items in an embedded multi-version database (EMVDB ) on flash memory. An EMVDB needs to support streams of update transactions and version-range queries to access different versions of data items maintained in the database. In BbMVBT, the index is divided into two levels. At the higher level, a multi-version index is maintained for keeping successive versions of each data item. These versions are allocated consecutively in a version block. At the lower level, a version array is used to search for a specific data version within a version block. With the reduced index structure of BbMVBT, the overhead for managing the index in processing update operations can be greatly reduced. At the same time, BbMVBT can also greatly reduce the number of accesses to the index in processing version-range queries. To ensure sufficient free blocks for creating version blocks for efficient execution of BbMVBT, in this paper, we also discuss how to perform garbage collection using the purging-range queries for reclaiming “old” versions of data items and their associated entries in the index nodes. Analysis of the performance of BbMVBT is presented and verified with performance studies using both synthetic and real workloads. The performance results illustrate that BbMVBT can significantly improve the read and write performance to the multi-version index as compared with MVBT even though the sizes of the version blocks are not large.

[1]  Christian S. Jensen,et al.  Workload-Aware Indexing of Continuously Moving Objects , 2009, Proc. VLDB Endow..

[2]  Jianliang Xu,et al.  Lazy-Update B+-Tree for Flash Devices , 2009, 2009 Tenth International Conference on Mobile Data Management: Systems, Services and Middleware.

[3]  Bernhard Seeger,et al.  An asymptotically optimal multiversion B-tree , 1996, The VLDB Journal.

[4]  Vana Kalogeraki,et al.  Real-Time Querying of Historical Data in Flash-Equipped Sensor Devices , 2008, 2008 Real-Time Systems Symposium.

[5]  Song Han,et al.  WirelessHART: Applying Wireless Technology in Real-Time Industrial Process Control , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

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

[7]  Kern Koh,et al.  FeGC: An efficient garbage collection scheme for flash memory based storage systems , 2011, J. Syst. Softw..

[8]  Suman Nath,et al.  Online maintenance of very large random samples on flash storage , 2008, The VLDB Journal.

[9]  Peter Desnoyers,et al.  Ultra-low power data storage for sensor networks , 2006, 2006 5th International Conference on Information Processing in Sensor Networks.

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

[11]  Insup Lee,et al.  Cyber-physical systems: The next computing revolution , 2010, Design Automation Conference.

[12]  Guoliang Xing,et al.  Fidelity-Aware Utilization Control for Cyber-Physical Surveillance Systems , 2012, IEEE Transactions on Parallel and Distributed Systems.

[13]  Jin Li,et al.  SkimpyStash: RAM space skimpy key-value store on flash-based storage , 2011, SIGMOD '11.

[14]  Prashant J. Shenoy,et al.  Exploiting the Interplay between Memory and Flash Storage in Embedded Sensor Devices , 2010, 2010 IEEE 16th International Conference on Embedded and Real-Time Computing Systems and Applications.

[15]  Youngjae Kim,et al.  DFTL: a flash translation layer employing demand-based selective caching of page-level address mappings , 2009, ASPLOS.

[16]  Philippe Pucheral,et al.  PBFilter: A flash-based indexing scheme for embedded systems , 2012, Inf. Syst..

[17]  Yunhao Liu,et al.  Underground coal mine monitoring with wireless sensor networks , 2009, TOSN.

[18]  Tian Luo,et al.  CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State Drives , 2011, FAST.

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

[20]  OHAD RODEH,et al.  B-trees, shadowing, and clones , 2008, TOS.

[21]  Walid G. Aref,et al.  The RUM-tree: supporting frequent updates in R-trees using memos , 2009, The VLDB Journal.

[22]  Edward A. Lee,et al.  Introduction to Embedded Systems - A Cyber-Physical Systems Approach , 2013 .

[23]  Edward A. Lee CPS foundations , 2010, Design Automation Conference.

[24]  Dimitrios Gunopulos,et al.  Microhash: an efficient index structure for fash-based sensor devices , 2005, FAST'05.

[25]  Christian S. Jensen,et al.  Main-Memory Operation Buffering for Efficient R-Tree Update , 2007, VLDB.

[26]  Dimitrios Gunopulos,et al.  Supporting historic queries in sensor networks with flash storage , 2014, Inf. Syst..

[27]  Peter Desnoyers,et al.  Capsule: an energy-optimized object storage system for memory-constrained sensor devices , 2006, SenSys '06.

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

[29]  Risto Miikkulainen,et al.  Architecture of a cyberphysical avatar , 2013, 2013 ACM/IEEE International Conference on Cyber-Physical Systems (ICCPS).

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

[31]  Tei-Wei Kuo,et al.  Efficient management for large-scale flash-memory storage systems with resource conservation , 2005, TOS.

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