The design and implementation of a log-structured file system
ACM Transactions on Computer Systems (TOCS)
The log-structured merge-tree (LSM-tree)
Acta Informatica
ACM Computing Surveys (CSUR)
Incremental Organization for Data Recording and Warehousing
VLDB '97 Proceedings of the 23rd International Conference on Very Large Data Bases
Design, Implementation, and Performance of the LHAM Log-Structured History Data Access Method
VLDB '98 Proceedings of the 24rd International Conference on Very Large Data Bases
A Novel Index Supporting High Volume Data Warehouse Insertion
VLDB '99 Proceedings of the 25th International Conference on Very Large Data Bases
The Buffer Tree: A New Technique for Optimal I/O-Algorithms (Extended Abstract)
WADS '95 Proceedings of the 4th International Workshop on Algorithms and Data Structures
Algorithms and data structures for flash memories
ACM Computing Surveys (CSUR)
FlashDB: dynamic self-tuning database for NAND flash
Proceedings of the 6th international conference on Information processing in sensor networks
Design of flash-based DBMS: an in-page logging approach
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
VLDB '04 Proceedings of the Thirtieth international conference on Very large data bases - Volume 30
A case for flash memory ssd in enterprise database applications
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Flash Disk Opportunity for Server Applications
Queue - Enterprise Flash Storage
The Five-Minute Rule 20 Years Later: and How Flash Memory Changes the Rules
Queue - Enterprise Flash Storage
Architecture of a Database System
Foundations and Trends in Databases
ICDE '09 Proceedings of the 2009 IEEE International Conference on Data Engineering
Proceedings of the eleventh international joint conference on Measurement and modeling of computer systems
Query processing techniques for solid state drives
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
FlashLogging: exploiting flash devices for synchronous logging performance
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
Lazy-Adaptive Tree: an optimized index structure for flash devices
Proceedings of the VLDB Endowment
Distributed systems meet economics: pricing in the cloud
HotCloud'10 Proceedings of the 2nd USENIX conference on Hot topics in cloud computing
StableBuffer: optimizing write performance for DBMS applications on flash devices
CIKM '10 Proceedings of the 19th ACM international conference on Information and knowledge management
FD-buffer: a buffer manager for databases on flash disks
CIKM '10 Proceedings of the 19th ACM international conference on Information and knowledge management
LazyFTL: a page-level flash translation layer optimized for NAND flash memory
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
SkimpyStash: RAM space skimpy key-value store on flash-based storage
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Turbocharging DBMS buffer pool using SSDs
Proceedings of the 2011 ACM SIGMOD International Conference on Management of data
Log-compact R-tree: an efficient spatial index for SSD
DASFAA'11 Proceedings of the 16th international conference on Database systems for advanced applications
FAST: a generic framework for flash-aware spatial trees
SSTD'11 Proceedings of the 12th international conference on Advances in spatial and temporal databases
FB-tree: a B+-tree for flash-based SSDs
Proceedings of the 15th Symposium on International Database Engineering & Applications
Towards cost-effective storage provisioning for DBMSs
Proceedings of the VLDB Endowment
B+-tree index optimization by exploiting internal parallelism of flash-based solid state drives
Proceedings of the VLDB Endowment
FlashB-tree: a novel B-tree index scheme for solid state drives
Proceedings of the 2011 ACM Symposium on Research in Applied Computation
bLSM: a general purpose log structured merge tree
SIGMOD '12 Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data
PBFilter: A flash-based indexing scheme for embedded systems
Information Systems
MyCassandra: a cloud storage supporting both read heavy and write heavy workloads
Proceedings of the 5th Annual International Systems and Storage Conference
A practical concurrent index for solid-state drives
Proceedings of the 21st ACM international conference on Information and knowledge management
Query processing on smart SSDs: opportunities and challenges
Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data
The impact of solid state drive on search engine cache management
Proceedings of the 36th international ACM SIGIR conference on Research and development in information retrieval
Read optimisations for append storage on flash
Proceedings of the 17th International Database Engineering & Applications Symposium
A group round robin based b-tree index storage scheme for flash memory devices
Proceedings of the 8th International Conference on Ubiquitous Information Management and Communication
MILo-DB: a personal, secure and portable database machine
Distributed and Parallel Databases
Hi-index | 0.01 |
Large flash disks, or solid state drives (SSDs), have become an attractive alternative to magnetic hard disks, due to their high random read performance, low energy consumption and other features. However, writes, especially small random writes, on flash disks are inherently much slower than reads because of the erase-before-write mechanism. To address this asymmetry of read-write speeds in tree indexing on the flash disk, we propose FD-tree, a tree index designed with the logarithmic method and fractional cascading techniques. With the logarithmic method, an FD-tree consists of the head tree -- a small B+-tree on the top, and a few levels of sorted runs of increasing sizes at the bottom. This design is write-optimized for the flash disk; in particular, an index search will potentially go through more levels or visit more nodes, but random writes are limited to a small area -- the head tree, and are subsequently transformed into sequential ones through merging into the lower runs. With the fractional cascading technique, we store pointers, called fences, in lower level runs to speed up the search. Given an FD-tree of n entries, we analytically show that it performs an update in O(logB n) sequential I/Os and completes a search in O(logB n) random I/Os, where B is the flash page size. We evaluate FD-tree in comparison with representative B+-tree variants under a variety of workloads on three commodity flash SSDs. Our results show that FD-tree has a similar search performance to the standard B+-tree, and a similar update performance to the write-optimized B+-tree variant. As a result, FD-tree dominates the other B+-tree index variants on the overall performance on flash disks as well as on magnetic disks.