6 advanced database systems - cmu 15-721 · 2020. 6. 11. · advanced database systems. 15-721...

82
Lecture #06 OLTP Indexes (Whole-Key Data Structures) @Andy_Pavlo // 15-721 // Spring 2020 ADVANCED DATABASE SYSTEMS

Upload: others

Post on 06-Oct-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

Le

ctu

re #

06

OLTP Indexes(Whole-Key Data Structures) @Andy_Pavlo // 15-721 // Spring 2020

ADVANCEDDATABASE SYSTEMS

Page 2: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

UPCOMING DATABASE EVENTS

Snowflake Optimizer Talk→ Monday Feb 3rd @ 4:30pm→ GHC 9115

2

Page 3: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

WHOLE-KEY DATA STRUCTURE

A "whole-key" order preserving data structure stores all the digits of a key together in nodes.→ A worker thread has to compare the entire search key

with keys in the data structure during traversal.

We will discuss "partial-key" data structures (i.e., tries) next class.

3

Page 4: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

In-Memory T-Tree

Latch-Free Bw-Tree

B+Tree Optimistic Latching

4

Page 5: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

OBSERVATION

The original B+Tree was designed for efficient access of data stored on slow disks.

Is there an alternative data structure that is specifically designed for in-memory databases?

5

Page 6: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES

Based on AVL Trees. Instead of storing keys in nodes, store pointers to their original values.

Proposed in 1986 from Univ. of WisconsinUsed in TimesTen and other early in-memory DBMSs during the 1990s.

6

A STUDY OF INDEX STRUCTURES FOR MAIN MEMORY DATABASE MANAGEMENT SYSTEMSVLDB 1986

Page 7: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-Tree Node

T-TREES

7

Min-K ¤ Max-K¤¤¤¤ ¤

Page 8: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-Tree Node

T-TREES

7

Min-K ¤ Max-K¤¤¤¤ ¤

Data Pointers

Page 9: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-Tree Node

T-TREES

7

Min-K ¤ Max-K¤¤¤¤ ¤

Data Pointers

KEY

K5K2

DATA

--

K9K8

--

⋮ ⋮

Data Table

Page 10: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-Tree Node

T-TREES

7

Min-K ¤ Max-K¤¤¤¤ ¤

Data Pointers

KEY

K5K2

DATA

--

K9K8

--

⋮ ⋮

Data Table

Parent Pointer

Right Child Pointer

Left Child Pointer

Page 11: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-Tree Node

T-TREES

7

Min-K ¤ Max-K¤¤¤¤ ¤

Data Pointers

Node Boundaries

KEY

K5K2

DATA

--

K9K8

--

⋮ ⋮

Data Table

Parent Pointer

Right Child Pointer

Left Child Pointer

Page 12: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: SEARCH

8

Data TableKEY DATA

K1 -K2 -K3 -K4 -K5 -K6 -K7 -K8 -K9 -

K1 ¤ K3¤¤

¤Ø Ø

K4 ¤ K6¤Ø

¤¤ ¤

K7 ¤ K9¤¤

¤Ø Ø

Find K2

Page 13: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: SEARCH

8

Data TableKEY DATA

K1 -K2 -K3 -K4 -K5 -K6 -K7 -K8 -K9 -

K1 ¤ K3¤¤

¤Ø Ø

K4 ¤ K6¤Ø

¤¤ ¤

K7 ¤ K9¤¤

¤Ø Ø

Find K2

Page 14: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: SEARCH

8

Data TableKEY DATA

K1 -K2 -K3 -K4 -K5 -K6 -K7 -K8 -K9 -

K1 ¤ K3¤¤

¤Ø Ø

K4 ¤ K6¤Ø

¤¤ ¤

K7 ¤ K9¤¤

¤Ø Ø

Find K2

Page 15: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: SEARCH

8

Data TableKEY DATA

K1 -K2 -K3 -K4 -K5 -K6 -K7 -K8 -K9 -

K1 ¤ K3¤¤

¤Ø Ø

K4 ¤ K6¤Ø

¤¤ ¤

K7 ¤ K9¤¤

¤Ø Ø

Find K2

K2<K4

Page 16: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: SEARCH

8

Data TableKEY DATA

K1 -K2 -K3 -K4 -K5 -K6 -K7 -K8 -K9 -

K1 ¤ K3¤¤

¤Ø Ø

K4 ¤ K6¤Ø

¤¤ ¤

K7 ¤ K9¤¤

¤Ø Ø

Find K2

K2>K1 K2<K3

Page 17: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: SEARCH

8

Data TableKEY DATA

K1 -K2 -K3 -K4 -K5 -K6 -K7 -K8 -K9 -

K1 ¤ K3¤¤

¤Ø Ø

K4 ¤ K6¤Ø

¤¤ ¤

K7 ¤ K9¤¤

¤Ø Ø

Find K2

K2=K1

Page 18: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: SEARCH

8

Data TableKEY DATA

K1 -K2 -K3 -K4 -K5 -K6 -K7 -K8 -K9 -

K1 ¤ K3¤¤

¤Ø Ø

K4 ¤ K6¤Ø

¤¤ ¤

K7 ¤ K9¤¤

¤Ø Ø

Find K2

K2=K2

Page 19: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREE: ADVANTAGES

Uses less memory because it does not store keys inside of each node.

The DBMS evaluates all predicates on a table at the same time when accessing a tuple (i.e., not just the predicates on indexed attributes).

10

Page 20: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

T-TREES: DISADVANTAGES

Difficult to rebalance.

Difficult to implement safe concurrent access.

Must chase pointers when scanning range or performing binary search inside of a node.→ This greatly hurts cache locality.

11

Page 21: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

OBSERVATION

Because CaS only updates a single address at a time, this limits the design of our data structures→ We cannot build a latch-free B+Tree because we need to

update multiple pointers on split/merge operations.

What if we had an indirection layer that allowed us to update multiple addresses atomically?

12

Page 22: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE

Latch-free B+Tree index built for the Microsoft Hekaton project.

Key Idea #1: Deltas→ No updates in place→ Reduces cache invalidation.

Key Idea #2: Mapping Table→ Allows for CaS of physical locations of pages.

13

THE BW-TREE: A B-TREE FOR NEW HARDWAREICDE 2013

Page 23: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: MAPPING TABLE

14

Mapping Table

PID Addr

101

102

103

104

Page 102

Page 101

Page 104Logical Pointer

Physical Pointer

Page 24: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: MAPPING TABLE

14

Mapping Table

PID Addr

101

102

103

104

102 104

102104

Page 102

Page 101

Page 104Logical Pointer

Physical Pointer

Page 25: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: DELTA UPDATES

15

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102Logical Pointer

Physical Pointer

Each update to a page produces a new delta.

Page 26: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: DELTA UPDATES

15

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

Install delta address in physical address slot of mapping table using CaS.

Delta physically points to base page.

Logical Pointer

Physical Pointer

Each update to a page produces a new delta.

Page 27: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: DELTA UPDATES

15

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

Install delta address in physical address slot of mapping table using CaS.

Delta physically points to base page.

Logical Pointer

Physical Pointer

Each update to a page produces a new delta.

Page 28: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: DELTA UPDATES

15

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

Install delta address in physical address slot of mapping table using CaS.

Delta physically points to base page.

Logical Pointer

Physical Pointer

Each update to a page produces a new delta.

Page 29: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: DELTA UPDATES

15

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

Install delta address in physical address slot of mapping table using CaS.

Delta physically points to base page.

Logical Pointer

Physical Pointer

Each update to a page produces a new delta.

Page 30: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: SEARCH

16

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

Otherwise, perform binary search on base page.

If mapping table points to delta chain, stop at first occurrence of search key.

Logical Pointer

Physical Pointer

Traverse tree like a regular B+tree.

Page 31: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONTENTION UPDATES

17

Threads may try to install updates to same page.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102Logical Pointer

Physical Pointer

Page 32: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONTENTION UPDATES

17

Threads may try to install updates to same page.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8 ▲Insert K6

Logical Pointer

Physical Pointer

Page 33: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONTENTION UPDATES

17

Threads may try to install updates to same page.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

Winner succeeds, any losers must retry or abort

▲Insert K6

Logical Pointer

Physical Pointer

Page 34: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONTENTION UPDATES

17

Threads may try to install updates to same page.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

Winner succeeds, any losers must retry or abort

▲Insert K6

Logical Pointer

Physical Pointer

Page 35: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONTENTION UPDATES

17

Threads may try to install updates to same page.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

Winner succeeds, any losers must retry or abort

▲Insert K6

Logical Pointer

Physical Pointer

Page 36: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONTENTION UPDATES

17

Threads may try to install updates to same page.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

Winner succeeds, any losers must retry or abort

▲Insert K6X

Logical Pointer

Physical Pointer

Page 37: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONSOLIDATION

18

Consolidate updates by creating new page with deltas applied.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

Logical Pointer

Physical Pointer

Page 38: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONSOLIDATION

18

Consolidate updates by creating new page with deltas applied.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102 ▲Insert K0

Logical Pointer

Physical Pointer

Page 39: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONSOLIDATION

18

Consolidate updates by creating new page with deltas applied.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

CaS-ing the mapping table address ensures no deltas are missed.

▲Insert K5

New 102

Logical Pointer

Physical Pointer

Page 40: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: CONSOLIDATION

18

Consolidate updates by creating new page with deltas applied.

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

CaS-ing the mapping table address ensures no deltas are missed.

▲Insert K5

New 102

Old page + deltas are marked as garbage.Logical

Pointer

Physical Pointer

Page 41: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

GARBAGE COLLECTION

We need to know when it is safe to reclaim memory for deleted nodes in a latch-free index.→ Reference Counting→ Epoch-based Reclamation→ Hazard Pointers→ Many others…

19

K1

V1

K2

V2

K3

V3

Page 42: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

GARBAGE COLLECTION

We need to know when it is safe to reclaim memory for deleted nodes in a latch-free index.→ Reference Counting→ Epoch-based Reclamation→ Hazard Pointers→ Many others…

19

K1

V1

K2

V2

K3

V3X

Page 43: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

GARBAGE COLLECTION

We need to know when it is safe to reclaim memory for deleted nodes in a latch-free index.→ Reference Counting→ Epoch-based Reclamation→ Hazard Pointers→ Many others…

19

K1

V1

K3

V3

Page 44: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

GARBAGE COLLECTION

We need to know when it is safe to reclaim memory for deleted nodes in a latch-free index.→ Reference Counting→ Epoch-based Reclamation→ Hazard Pointers→ Many others…

19

K1

V1

K3

V3

Page 45: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

REFERENCE COUNTING

Maintain a counter for each node to keep track of the number of threads that are accessing it.→ Increment the counter before accessing.→ Decrement it when finished.→ A node is only safe to delete when the count is zero.

This has bad performance for multi-core CPUs→ Incrementing/decrementing counters causes a lot of

cache coherence traffic.

20

Page 46: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

OBSERVATION

We don’t care about the actual value of the reference counter. We only need to know when it reaches zero.

We don’t have to perform garbage collection immediately when the counter reaches zero.

21

Source: Stephen Tu

Page 47: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

EPOCH GARBAGE COLLECTION

Maintain a global epoch counter that is periodically updated (e.g., every 10 ms).→ Keep track of what threads enter the index during an

epoch and when they leave.

Mark the current epoch of a node when it is marked for deletion.→ The node can be reclaimed once all threads have left that

epoch (and all preceding epochs).

Also known as Read-Copy-Update (RCU) in Linux.

22

Page 48: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

Operations are tagged with an epoch→ Each epoch tracks the threads that are part of it and the

objects that can be reclaimed.→ Thread joins an epoch prior to each operation and post

objects that can be reclaimed for the current epoch (not necessarily the one it joined)

Garbage for an epoch reclaimed only when all threads have exited the epoch.

23

Page 49: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5 Epoch Table

Logical Pointer

Physical Pointer

Page 50: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

CPU1

Epoch Table

CPU1

Logical Pointer

Physical Pointer

Page 51: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

CPU2

CPU1

Epoch Table

CPU2CPU1

Logical Pointer

Physical Pointer

Page 52: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

CPU2

CPU1

Epoch Table

CPU2CPU1

Logical Pointer

Physical Pointer

Page 53: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

CPU2

CPU1

Epoch Table

CPU2CPU1

Logical Pointer

Physical Pointer

Page 54: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

CPU2

Epoch Table

CPU2

Logical Pointer

Physical Pointer

Page 55: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

CPU2

Epoch Table

CPU2

Logical Pointer

Physical Pointer

Page 56: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

Epoch Table

Logical Pointer

Physical Pointer

Page 57: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: GARBAGE COLLECTION

24

Mapping Table

PID Addr

101

102

103

104

▲Insert K0

Page 102

▲Delete K8

▲Insert K5

New 102

Epoch Table

XLogical Pointer

Physical Pointer

Page 58: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: STRUCTURE MODIFICATIONS

Split Delta Record→ Mark that a subset of the base page’s key range is now

located at another page.→ Use a logical pointer to the new page.

Separator Delta Record→ Provide a shortcut in the modified page’s parent on what

ranges to find the new page.

25

Page 59: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102 Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

Logical Pointer

Physical Pointer

Page 60: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102 Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

Logical Pointer

Physical Pointer

Page 61: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

Logical Pointer

Physical Pointer

Page 62: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

Logical Pointer

Physical Pointer

Page 63: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Split

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 64: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Split

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 65: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Split

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 66: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Split

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 67: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Split

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 68: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Separator

▲Split

[-∞,K3) [K3,K7) [K7,∞)

[K5,K7)

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 69: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Separator

▲Split

[-∞,K3) [K3,K7) [K7,∞)

[K5,K7)

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 70: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

Page 102

Page 105

Page 104

Page 101

Page 103

BW-TREE: STRUCTURE MODIFICATIONS

26

Mapping Table

PID Addr

101

102

103

104

K3 K4 K5 K6K1 K2 K7 K8105

K5 K6

▲Separator

▲Split

[-∞,K3) [K3,K7) [K7,∞)

[K5,K7)

Logical Pointer

Physical Pointer

Physical Left: [K3,K5)Logical Right: [K5,K7)

Page 71: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

CMU OPEN BW-TREE

Optimization #1: Pre-Allocated Delta Records→ Store the delta chain directly inside of a page.→ Avoids small object allocation, list traversal.

27

0123 Page 102Offset

0

BUILDING THE BW-TREE TAKES MORE THAN JUST BUZZ WORDSSIGMOD 2018

Delta Slots

Mapping Table

PID Addr

102

Page 72: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

CMU OPEN BW-TREE

Optimization #1: Pre-Allocated Delta Records→ Store the delta chain directly inside of a page.→ Avoids small object allocation, list traversal.

27

0123 Page 102Offset

0

BUILDING THE BW-TREE TAKES MORE THAN JUST BUZZ WORDSSIGMOD 2018

Delta Slots

Delta Slot Offset

Mapping Table

PID Addr

102

Page 73: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

CMU OPEN BW-TREE

Optimization #1: Pre-Allocated Delta Records→ Store the delta chain directly inside of a page.→ Avoids small object allocation, list traversal.

27

0123 Page 102Offset

0

BUILDING THE BW-TREE TAKES MORE THAN JUST BUZZ WORDSSIGMOD 2018

Delta Slots

Delta Slot Offset

Mapping Table

PID Addr

102

Page 74: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

CMU OPEN BW-TREE

Optimization #1: Pre-Allocated Delta Records→ Store the delta chain directly inside of a page.→ Avoids small object allocation, list traversal.

27

0123 Page 102Offset

0

BUILDING THE BW-TREE TAKES MORE THAN JUST BUZZ WORDSSIGMOD 2018

Delta Slots

Delta Slot Offset

Mapping Table

PID Addr

102Offset

1

Page 75: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

CMU OPEN BW-TREE

Optimization #1: Pre-Allocated Delta Records→ Store the delta chain directly inside of a page.→ Avoids small object allocation, list traversal.

27

0123 Page 102Offset

0

BUILDING THE BW-TREE TAKES MORE THAN JUST BUZZ WORDSSIGMOD 2018

Delta Slots

Delta Slot Offset

Mapping Table

PID Addr

102Offset

1

Page 76: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

CMU OPEN BW-TREE

Optimization #1: Pre-Allocated Delta Records→ Store the delta chain directly inside of a page.→ Avoids small object allocation, list traversal.

27

0123 Page 102Offset

0

BUILDING THE BW-TREE TAKES MORE THAN JUST BUZZ WORDSSIGMOD 2018

Delta Slots

Delta Slot Offset

Mapping Table

PID Addr

102Offset

1

Page 77: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

CMU OPEN BW-TREE

Optimization #2: Mapping Table Expansion→ Fastest associative data structure is a plain array.→ Allocating the full array for each index is wasteful→ Old Peloton: 1m nodes per index = 8MB

Use virtual memory to allocate the entire array without backing it with physical memory.→ Only need to allocate physical memory when threads

access higher offsets in the array.

28

BUILDING THE BW-TREE TAKES MORE THAN JUST BUZZ WORDSSIGMOD 2018

Page 78: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: PERFORMANCE

29

Source: Justin Levandoski

10.4

3.832.84

4.23

1.02 0.720.56 0.66 0.33

0

2

4

6

8

10

12

Xbox Synthetic Deduplication

Ope

rati

ons/

sec

(M)

Bw-Tree Skip List B+Tree

Processor: 1 socket, 4 cores w/ 2×HT

Page 79: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: PERFORMANCE

30

9.94

15.513.3

2.51 2.78 1.51

8.09

29

25.1

0

10

20

30

40

Insert-Only Read-Only Read/Update

Ope

rati

ons/

sec

(M)

Open Bw-Tree Skip List B+Tree

Processor: 1 socket, 10 cores w/ 2×HTWorkload: 50m Random Integer Keys (64-bit)

Source: Ziqi Wang

Page 80: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

BW-TREE: PERFORMANCE

31

9.9415.5 13.3

2.51 2.78 1.51

8.09

2925.1

17.9

30.5

22

44.9

51.5

42.9

0

20

40

60

Insert-Only Read-Only Read/Update

Ope

rati

ons/

sec

(M)

Open Bw-Tree Skip List B+Tree Masstree ART

Processor: 1 socket, 10 cores w/ 2×HTWorkload: 50m Random Integer Keys (64-bit)

Source: Ziqi Wang

Page 81: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

PARTING THOUGHTS

Managing a concurrent index looks a lot like managing a database.

A Bw-Tree is hard to implement.

Versioned latch coupling provides some the benefits of optimistic methods with wasting too much work.

43

Page 82: 6 ADVANCED DATABASE SYSTEMS - CMU 15-721 · 2020. 6. 11. · ADVANCED DATABASE SYSTEMS. 15-721 (Spring 2020) UPCOMING DATABASE EVENTS Snowflake Optimizer Talk →Monday Feb 3rd @

15-721 (Spring 2020)

NEXT CL ASS

Latch Implementations

Trie Data Structures

44