1 / 24

FAST: A Framework for Flash-Aware Spatial Trees

FAST: A Framework for Flash-Aware Spatial Trees. Mohamed Sarwat , Mohamed Mokbel, Xun Zhou Department of Computer Science and Engineering University of Minnesota Suman Nath Microsoft Research. Flash Memory: Already exists. Mobile Devices. Enterprise Servers. Flash Memory Storage: Pros.

Download Presentation

FAST: A Framework for Flash-Aware Spatial Trees

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FAST: A Framework for Flash-Aware Spatial Trees Mohamed Sarwat, Mohamed Mokbel, Xun Zhou Department of Computer Science and Engineering University of Minnesota SumanNath Microsoft Research

  2. Flash Memory: Already exists • Mobile Devices • Enterprise Servers

  3. Flash Memory Storage: Pros Flash Memory is Topnotch !

  4. Flash Memory Storage: Cons • Erase-Before-Update Property • Eraselatency 1500 microseconds • Read latency 25 microseconds • Write latency 200 microseconds • Limited Number of Erases per Block • 100,000 to 1000,000

  5. DBMS Tree Indexes & Storage All Database indexing algorithms were built with the implicit assumption that the underlying secondary storage is the hard disk. Making Tree Index Structures Flash-Aware !

  6. Existing Flash-Aware Trees • Chin-Hsien Wu, Li-Pin Chang, Tei-Wei Kuo. An Efficient R-Tree Implementation over Flash-Memory Storage Systems. In GIS 2003 • Designed only for R-tree. • No support for recovery • Chin-Hsien Wu, Li-Pin Chang, and Tei-Wei Kuo. An Efficient B-Tree Layer for Flash-Memory Storage Systems. In TECS 2007 • Designed only for B-tree. • No support for recovery

  7. Existing Flash-Aware Trees • Devesh Agrawal, Deepak Ganesan, Ramesh Sitaraman, YanleiDiao, and ShashiSingh. Lazy-Adaptive Tree: An Optimized Index Structure for Flash Devices. In VLDB 2009 • Need to build a new kind of tree indexing. Not very practical..!! • Yinan Li, BingshengHe, Robin Jun Yang, QiongLuo, KeYi. Tree Indexing on Flash Disks. In ICDE 2009 (short), VLDB 2010(full) • Need to build a new kind of tree indexing. Not very practical..!!

  8. We need a Framework Generic: One Framework works for all Practical:No need to throw your already existing index structure away Durable: Designed with database systems in mind (recovery)

  9. FAST FAST is an Efficient, Generic, Practical, and Practical Framework for index structures on the flash storage

  10. FAST: A Framework for Flash-Aware Search Trees In-memory Update In-memory Buffer Restart after Crash Update Transaction Crash Recovery Module Update Module Write Read Read Flushing Policy Recent Version of the tree Read Index & Log Entries Selected Memory Pages Flash Storage Update Log Entries Log File Flush Log Entry Search Query Search Module Flushing Module Read Full Memory Write Answer Flash Memory Index

  11. FAST: A Framework for Flash-Aware Search Trees In-memory Update In-memory Buffer Restart after Crash Update Transaction Crash Recovery Module Update Module Write Read Read Flushing Policy Recent Version of the tree Read Index & Log Entries Selected Memory Pages Flash Storage Update Log Entries Log File Flush Log Entry Search Query Search Module Flushing Module Read Full Memory Write Answer Flash Memory Index

  12. Update Operation (Insertion/Deletion) Example: Insert (Obj1) in R-tree Main Memory Flash Memory Tree Modifications Table Step 2 MBR1 - value Node 1 Obj1 - Inserted Step 3 Node 2 Tree Index Structure Insert (O1, MBR ….) || Nodes 1,2 Step 1

  13. FAST: A Framework for Flash-Aware Search Trees In-memory Update In-memory Buffer Restart after Crash Update Transaction Crash Recovery Module Update Module Write Read Read Flushing Policy Recent Version of the tree Read Index & Log Entries Selected Memory Pages Flash Storage Update Log Entries Log File Flush Log Entry Search Query Search Module Flushing Module Read Full Memory Write Answer Flash Memory Index

  14. Search Operation (Find/Range) Example: Range query in R-tree Main Memory Flash Memory Tree Modifications Table Step1 Step 3 MBR1 - value Step 2 Node 1 Obj1 - Inserted Step 4 Node 2 Tree Index Structure Insert (O1, MBR ….) || Nodes 1,2 Query Result Step 5

  15. FAST: A Framework for Flash-Aware Search Trees In-memory Update In-memory Buffer Restart after Crash Update Transaction Crash Recovery Module Update Module Write Read Read Flushing Policy Recent Version of the tree Read Index & Log Entries Selected Memory Pages Flash Storage Update Log Entries Log File Flush Log Entry Search Query Search Module Flushing Module Read Full Memory Write Answer Flash Memory Index

  16. Flushing Main Memory Flash Memory 1 3 5 4 2 MBR1 - value Flush 2,3,4,5 Step 2 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Tree Index Structure Step 4 Same Block Insert (O1, MBR) || Nodes 1,2 Step 5 Delete (O2, MBR) || Nodes 12 Insert (O4, MBR) || Nodes 1,4,14 Insert (O5, MBR) || Nodes 4,17 1 0 0 1 1 0 0 Insert (O4, MBR) || Nodes 1,5,18 Nodes 2,3,4,5 flushed Step 3 Step 1 75 %

  17. FAST: A Framework for Flash-Aware Search Trees In-memory Update In-memory Buffer Restart after Crash Update Transaction Crash Recovery Module Update Module Write Read Read Flushing Policy Recent Version of the tree Read Index & Log Entries Selected Memory Pages Flash Storage Update Log Entries Log File Flush Log Entry Search Query Search Module Flushing Module Read Full Memory Write Answer Flash Memory Index

  18. Crash Recovery Main Memory Flash Memory Restart after crash 1 MBR1 - value 3 5 4 2 Crash Recovery 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Tree Index Structure Restart after crash Insert (O1, MBR) || Nodes 1,2 Log Maintenance Delete (O2, MBR) || Nodes 12 Insert (O4, MBR) || Nodes 1,4,14 Compact Log Insert (O5, MBR) || Nodes 4,17 Insert (O4, MBR) || Nodes 1,5,18 Insert (O4, MBR) || Nodes 18 Nodes 1,2,3,4,5, 14,17 flushed

  19. Experimental Evaluation (1/4) • We implemented FAST in PostGreSQL • We instantiate B-tree and R-tree instances of FAST, termed FAST-Btree and FAST-Rtree • We use two synthetic workloads: • Lookup intensive workload (WL): 80% search and 20% update • Update intensive workload, (WU): 20% search and 80% update. • number of workload operations to 10 million • main memory size to 256 KB • Tree index size to 512 MB, and • log file size to10 MB (~ 2% of Index size)

  20. Experimental Evaluation (2/4) 308 lines of code 8150 lines of code 348 lines of code 3070 lines of code 9230 lines of code

  21. Experimental Evaluation (3/4)

  22. Experimental Evaluation (4/4)

  23. Conclusion • FAST is a generic framework for flash-aware index structures. • FAST guarantees the durability of update transactions applied to the underlying index structure. • FAST has good performance compared to its counterparts (LA-tree, FD-tree, and RFTL)

  24. Questions

More Related