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

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


  • 56 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 a framework for flash aware spatial trees

FAST

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


Fast a framework for flash aware spatial trees

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 spatial trees

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 spatial trees

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 spatial trees

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 spatial trees

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 spatial trees

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 spatial trees

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 spatial trees

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 spatial trees

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)