, Volume 17, Issue 3, pp 417–448 | Cite as

Generic and efficient framework for search trees on flash memory storage systems

  • Mohamed Sarwat
  • Mohamed F. Mokbel
  • Xun Zhou
  • Suman Nath


Tree index structures are crucial components in data management systems. Existing tree index structure are designed with the implicit assumption that the underlying external memory storage is the conventional magnetic hard disk drives. This assumption is going to be invalid soon, as flash memory storage is increasingly adopted as the main storage media in mobile devices, digital cameras, embedded sensors, and notebooks. Though it is direct and simple to port existing tree index structures on the flash memory storage, that direct approach does not consider the unique characteristics of flash memory, i.e., slow write operations, and erase-before-update property, which would result in a sub optimal performance. In this paper, we introduce FAST (i.e., Flash-Aware Search Trees) as a generic framework for flash-aware tree index structures. FAST distinguishes itself from all previous attempts of flash memory indexing in two aspects: (1) FAST is a generic framework that can be applied to a wide class of data partitioning tree structures including R-tree and its variants, and (2) FAST achieves both efficiency and durability of read and write flash operations through memory flushing and crash recovery techniques. Extensive experimental results, based on an actual implementation of FAST inside the GiST index structure in PostgreSQL, show that FAST achieves better performance than its competitors.


Flash memory Tree Spatial Index structure Storage Multi-dimensional Data System 


  1. 1.
  2. 2.
    Agrawal D, Ganesan D, Sitaraman RK, Diao Y, Singh S (2009) Lazy-adaptive tree: an optimized index structure for flash devices. PVLDBGoogle Scholar
  3. 3.
    Agrawal N, Prabhakaran V, Wobber T, Davis J, Manasse M, Panigrahy R (2008) Design tradeoffs for SSD performance. In: Usenix annual technical conference, USENIXGoogle Scholar
  4. 4.
    Bayer R, McCreight EM (1972) Organization and maintenance of large ordered indices. Acta Inform 1:173–189CrossRefGoogle Scholar
  5. 5.
    Beckmann N, Kriegel H-P, Schneider R, Seeger B (1990) The R*-tree: an efficient and robust access method for points and rectangles. In: SIGMODGoogle Scholar
  6. 6.
    Birrell A, Isard M, Thacker C, Wobber T (2007) A design for high-performance flash disks. ACM SIGOPS Oper Syst Rev 41(2):88–93CrossRefGoogle Scholar
  7. 7.
    Bouganim L, Jónsson B, Bonnet P (2009) uFLIP: understanding flash IO patterns. In: CIDRGoogle Scholar
  8. 8.
    Chang Y-H, Hsieh J-W, Kuo T-W (2007) Endurance enhancement of flash-memory storage systems: an efficient static wear leveling design. In: Proceedings of the annual ACM IEEE Design Automation Conference, DAC, pp 212–217Google Scholar
  9. 9.
    Chen S (2009) FlashLogging: exploiting flash devices for synchronous logging performance. In: SIGMOD. New York, NYGoogle Scholar
  10. 10.
    Comer D (1979) The ubiquitous B-tree. ACM Comput Surv 11(2):121–137CrossRefGoogle Scholar
  11. 11.
    Gray J (2006) Tape is dead, disk is tape, flash is disk, RAM locality is king. Accessed Dec 2006
  12. 12.
    Gray J, Fitzgerald B (2008) Flash disk opportunity for server applications. ACM Queue 6(4):18–23CrossRefGoogle Scholar
  13. 13.
    Gray J, Graefe G (1997) The five-minute rule ten years later, and other computer storage rules of thumb. SIGMOD Rec 26(4):63–68CrossRefGoogle Scholar
  14. 14.
    Guttman A (1984) R-trees: a dynamic index structure for spatial searching. In: SIGMODGoogle Scholar
  15. 15.
    Hellerstein JM, Naughton JF, Pfeffer A (1995) Generalized search trees for database systems. In: VLDBGoogle Scholar
  16. 16.
    Hutsell W (2007) Solid state storage for the enterprise. Storage Networking Industry Association (SNIA) Tutorial, FallGoogle Scholar
  17. 17.
    Katayama N, Satoh, S (1997) The sr-tree: an index structure for high-dimensional nearest neighbor queries. In: SIGMODGoogle Scholar
  18. 18.
    Kim H, Ahn S (2008) BPLRU: a buffer management scheme for improving random writes in flash storage. In: FASTGoogle Scholar
  19. 19.
    Lavenier D, Xinchun X, Georges G (2006) seed-based genomic sequence comparison using a FPGA/FLASH accelerator. In: ICFPTGoogle Scholar
  20. 20.
    Lee S, Moon B (2007) Design of flash-based DBMS: an in-page logging approach. In: SIGMODGoogle Scholar
  21. 21.
    Lee S-W, Moon B, Park C, Kim J-M, Kim S-W (2008) A case for flash memory SSD in enterprise database applications. In: SIGMODGoogle Scholar
  22. 22.
    Lee S-W, Park D-J, sum Chung T, Lee D-H, Park S, Song H-J (2007) A log buffer-based flash translation layer using fully-associate sector translation. TECSGoogle Scholar
  23. 23.
    Leventhal A (2008) Flash storage today. ACM Queue 6(4):24–30CrossRefGoogle Scholar
  24. 24.
    Li Y, He B, Luo Q, Yi K (2009) Tree indexing on flash disks. In: ICDEGoogle Scholar
  25. 25.
    Li Y, He B, Yang RJ, Luo Q, Yi K (2010) Tree indexing on solid state drives. Proceedings of the VLDB Endowment 3(1–2):1195–1206Google Scholar
  26. 26.
    Ma D, Feng J, Li G (2011) LazyFTL: A page-level flash translation layer optimized for NAND flash memory. In: SIGMODGoogle Scholar
  27. 27.
    McCreight EM (1977) Pagination of B*-trees with variable-length records. Commun ACM 20(9):670–674CrossRefGoogle Scholar
  28. 28.
    Moshayedi M, Wilkison P (2008) Enterprise SSDs. ACM Queue 6(4):32–39CrossRefGoogle Scholar
  29. 29.
    Nath S, Gibbons PB (2008) Online maintenance of very large random samples on flash storage. In: VLDBGoogle Scholar
  30. 30.
    Nath S, Kansal A (2007) Flashdb: dynamic self-tuning database for NAND flash. In: IPSNGoogle Scholar
  31. 31.
    Reinsel D, Janukowicz J (2008) Datacenter SSDs: solid footing for growth. Accessed Jan 2008
  32. 32.
    Sellis TK, Roussopoulos N, Faloutsos C (1987) The R+-tree: a dynamic index for multi-dimensional objects. In: VLDBGoogle Scholar
  33. 33.
    Shah MA, Harizopoulos S, Wiener JL, Graefe G (2008) Fast scans and joins using flash drives. In: International Workshop of Data Managment on New Hardware, DaMoNGoogle Scholar
  34. 34.
    White DA, Jain R (1996) Similarity indexing with the SS-tree. In: ICDEGoogle Scholar
  35. 35.
    Wu C, Chang L, Kuo T (2003) An efficient R-tree implementation over flash-memory storage systems. In: GISGoogle Scholar
  36. 36.
    Wu C, Kuo T, Chang L (2007) An efficient B-tree layer implementation for flash-memory storage systems. TECSGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Mohamed Sarwat
    • 1
  • Mohamed F. Mokbel
    • 1
  • Xun Zhou
    • 1
  • Suman Nath
    • 2
  1. 1.Department of Computer Science and EngineeringUniversity of Minnesota - Twin CitiesMinneapolisUSA
  2. 2.Microsoft ResearchRedmondUSA

Personalised recommendations