Fast a framework for flash aware spatial trees
Download
1 / 24

FAST: A Framework for Flash-Aware Spatial Trees - PowerPoint PPT Presentation


  • 55 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' FAST: A Framework for Flash-Aware Spatial Trees' - efia


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
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

SumanNath

Microsoft Research


Flash memory already exists
Flash Memory: Already exists

  • Mobile Devices

  • Enterprise Servers


Flash memory storage pros
Flash Memory Storage: Pros

Flash Memory is Topnotch !


Flash memory storage cons
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


Dbms tree indexes storage
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 !


Existing flash aware trees
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


Existing flash aware trees1
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..!!


We need a framework
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)


FAST

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


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


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


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


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


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


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


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 %


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


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


Experimental evaluation 1 4
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)


Experimental evaluation 2 4
Experimental Evaluation (2/4)

308 lines of code

8150 lines of code

348 lines of code

3070 lines of code

9230 lines of code




Conclusion
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)



ad