skip to main content
research-article

Tree indexing on solid state drives

Authors Info & Claims
Published:01 September 2010Publication History
Skip Abstract Section

Abstract

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.

References

  1. D. Agrawal, D. Ganesan, R. Sitaraman, Y. Diao, and S. Singh. Lazy-adaptive tree: An optimized index structure for flash devices. PVLDB, 2(1):361--372, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. L. Arge. The buffer tree: A new technique for optimal i/o-algorithms. In WADS, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. L. Bentley. Decomposable searching problems. Inf. Process. Lett., 8(5), 1979.Google ScholarGoogle ScholarCross RefCross Ref
  4. L. Bouganim, B. T. Jónsson, and P. Bonnet. uflip: Understanding flash io patterns. In CIDR, 2009.Google ScholarGoogle Scholar
  5. B. Chazelle and L. J. Guibas. Fractional cascading: I. a data structuring technique. Algorithmica, 1(2), 1986.Google ScholarGoogle Scholar
  6. F. Chen, D. Koufaty, and X. Zhang. Understanding intrinsic characteristics and system implications of flash memory based solid state drives. In SIGMETRICS, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. S. Chen. Flashlogging: Exploiting flash devices for synchronous logging performance. In SIGMOD Conference, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Comer. The ubiquitous b-tree. ACM Comput. Surv., 11(2), 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. E. Gal and S. Toledo. Algorithms and data structures for flash memories. ACM Comput. Surv., 37(2), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. Graefe. Write-optimized b-trees. In VLDB, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. G. Graefe. The five-minute rule 20 years later: and how flash memory changes the rules. ACM Queue, 6(4):40--52, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J. Gray and B. Fitzgerald. Flash disk opportunity for server applications. ACM Queue, 6(4):18--23, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. J. M. Hellerstein, M. Stonebraker, and J. R. Hamilton. Architecture of a database system. Foundations and Trends in Databases, 1(2), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. H. V. Jagadish, P. P. S. Narayan, S. Seshadri, S. Sudarshan, and R. Kanneganti. Incremental organization for data recording and warehousing. In VLDB, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. C. Jermaine, A. Datta, and E. Omiecinski. A novel index supporting high volume data warehouse insertion. In VLDB, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. K. Kimura and T. Kobayashi. Trends in high-density flash memory technologies. In IEEE Conference on Electron Devices and Solid-State Circuits, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  17. S.-W. Lee and B. Moon. Design of flash-based dbms: an in-page logging approach. In SIGMOD Conference, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. S.-W. Lee, B. Moon, C. Park, J.-M. Kim, and S.-W. Kim. A case for flash memory ssd in enterprise database applications. In SIGMOD Conference, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Y. Li, B. He, Q. Luo, and K. Yi. Tree indexing on flash disks. In ICDE, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. Manning. Yaffs: the nand-specific flash file system. 2002.Google ScholarGoogle Scholar
  21. P. Muth, P. E. O'Neil, A. Pick, and G. Weikum. Design, implementation, and performance of the lham log-structured history data access method. In VLDB, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. D. Myers. On the use of nand flash memory in high-performance relational databases. MIT Msc Thesis, 2008.Google ScholarGoogle Scholar
  23. S. Nath and A. Kansal. Flashdb: dynamic self-tuning database for nand flash. In IPSN, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. P. E. O'Neil, E. Cheng, D. Gawlick, and E. J. O'Neil. The log-structured merge-tree (lsm-tree). Acta Inf., 33(4), 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. M. Rosenblum and J. K. Ousterhout. The design and implementation of a log-structured file system. ACM Trans. Comput. Syst., 10(1), 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. D. Tsirogiannis, S. Harizopoulos, M. A. Shah, J. L. Wiener, and G. Graefe. Query processing techniques for solid state drives. In SIGMOD Conference, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. D. Woodhouse. Jffs: The journalling flash file system. In Ottawa Linux Symposium, 2001.Google ScholarGoogle Scholar
  28. C.-H. Wu, T.-W. Kuo, and L. P. Chang. An efficient b-tree layer implementation for flash-memory storage systems. In RTCSA, 2003.Google ScholarGoogle Scholar

Index Terms

  1. Tree indexing on solid state drives
        Index terms have been assigned to the content through auto-classification.

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image Proceedings of the VLDB Endowment
          Proceedings of the VLDB Endowment  Volume 3, Issue 1-2
          September 2010
          1658 pages

          Publisher

          VLDB Endowment

          Publication History

          • Published: 1 September 2010
          Published in pvldb Volume 3, Issue 1-2

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader