FAST: A Generic Framework for Flash-Aware Spatial Trees

  • Mohamed Sarwat
  • Mohamed F. Mokbel
  • Xun Zhou
  • Suman Nath
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6849)


Spatial tree index structures are crucial components in spatial data management systems, 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 spatial 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 Spatial Trees) as a generic framework for flash-aware spatial 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 spatial tree structures including R-tree and its variants, and (2) FAST achieves both efficiency and durability of read and write flash operations through smart 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.


Index Structure Memory Size Tree Node Solid State Drive Recovery Module 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    PostgreSQL, http://PostgreSQL,
  2. 2.
    Agrawal, D., Ganesan, D., Sitaraman, R.K., Diao, Y., Singh, S.: Lazy-adaptive tree: An optimized index structure for flash devices. In: PVLDB (2009)Google Scholar
  3. 3.
    Agrawal, N., Prabhakaran, V., Wobber, T., Davis, J., Manasse, M., Panigrahy, R.: Design Tradeoffs for SSD Performance. In: Usenix Annual Technical Conference, USENIX (2008)Google Scholar
  4. 4.
    Beckmann, N., Kriegel, H.-P., Schneider, R., Seeger, B.: The R*-Tree: An Efficient and Robust Access Method for Points and Rectangles. In: SIGMOD (1990)Google Scholar
  5. 5.
    Bouganim, L., Jónsson, B., Bonnet, P.: uFLIP: Understanding Flash IO Patterns. In: CIDR (2009)Google Scholar
  6. 6.
    Gray, J., Fitzgerald, B.: Flash Disk Opportunity for Server Applications. ACM Queue (2008)Google Scholar
  7. 7.
    Guttman, A.: R-Trees: A Dynamic Index Structure For Spatial Searching. In: SIGMOD (1984)Google Scholar
  8. 8.
    Hellerstein, J.M., Naughton, J.F., Pfeffer, A.: Generalized search trees for database systems. In: VLDB (1995)Google Scholar
  9. 9.
    Katayama, N., Satoh, S.: The sr-tree: An index structure for high-dimensional nearest neighbor queries. In: SIGMOD (1997)Google Scholar
  10. 10.
    Kim, H., Ahn, S.: BPLRU: A Buffer Management Scheme for Improving Random Writes in Flash Storage. In: FAST (2008)Google Scholar
  11. 11.
    Lavenier, D., Xinchun, X., Georges, G.: Seed-based Genomic Sequence Comparison using a FPGA/FLASH Accelerator. In: ICFPT (2006)Google Scholar
  12. 12.
    Lee, S., Moon, B.: Design of Flash-Based DBMS: An In-Page Logging Approach. In: SIGMOD (2007)Google Scholar
  13. 13.
    Lee, S.-W., Moon, B., Park, C., Kim, J.-M., Kim, S.-W.: A case for Flash memory SSD in Enterprise Database Applications. In: SIGMOD (2008)Google Scholar
  14. 14.
    Lee, S.-W., Park, D.-J., sum Chung, T., Lee, D.-H., Park, S., Song, H.-J.: A Log Buffer-Based Flash Translation Layer Using Fully-Associate Sector Translation. In: TECS (2007)Google Scholar
  15. 15.
    Leventhal, A.: Flash Storage Today. ACM Queue (2008)Google Scholar
  16. 16.
    Li, Y., He, B., Luo, Q., Yi, K.: Tree indexing on Flash Disks. In: ICDE (2009)Google Scholar
  17. 17.
    Li, Y., He, B., Yang, R.J., Luo, Q., Yi, K.: Tree indexing on solid state drives. In: PVLDB, vol. 3(1) (2010)Google Scholar
  18. 18.
    Moshayedi, M., Wilkison, P.: Enterprise SSDs. ACM Queue (2008)Google Scholar
  19. 19.
    Nath, S., Gibbons, P.B.: Online Maintenance of Very Large Random Samples on Flash Storage. In: VLDB (2008)Google Scholar
  20. 20.
    Nath, S., Kansal, A.: Flashdb: Dynamic self-tuning database for nand flash. In: IPSN (2007)Google Scholar
  21. 21.
    Reinsel, D., Janukowicz, J.: Datacenter SSDs: Solid Footing for Growth (January 2008),
  22. 22.
    Sellis, T.K., Roussopoulos, N., Faloutsos, C.: The R+-Tree: A Dynamic Index for Multi-Dimensional Objects. In: VLDB (1987)Google Scholar
  23. 23.
    Shah, M.A., Harizopoulos, S., Wiener, J.L., Graefe, G.: Fast Scans and Joins using Flash Drives. In: International Workshop of Data Managment on New Hardware, DaMoN (2008)Google Scholar
  24. 24.
    White, D.A., Jain, R.: Similarity indexing with the ss-tree. In: ICDE (1996)Google Scholar
  25. 25.
    Wu, C., Chang, L., Kuo, T.: An Efficient R-tree Implementation over Flash-Memory Storage Systems. In: GIS (2003)Google Scholar
  26. 26.
    Wu, C., Kuo, T., Chang, L.: An Efficient B-tree Layer Implementation for Flash-Memory Storage Systems. In: TECS (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

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 MinnesotaUSA
  2. 2.Microsoft ResearchUSA

Personalised recommendations