140
Dostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive Removal of Superfluous Merging Niv Dayan & Stratos Idreos LSM-Tree

Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Dostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive Removal of Superfluous Merging

Niv Dayan & Stratos Idreos

LSM-Tree

Page 2: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LSM-Tree

Page 3: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Key-Value Stores

LSM-Tree

Page 4: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Key-Value Stores

Time-Series Databases

LSM-Tree

Page 5: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Key-Value Stores

Time-Series DatabasesRelational Databases

LSM-Tree

Page 6: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Key-Value Stores

Time-Series Databases

Algorithm Design

Relational Databases

LSM-Tree

Page 7: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LSM-Tree

LSM-Tree

Page 8: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LSM-Tree

LSM-Tree

workload

MAX

Page 9: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

MAX

Page 10: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

stuck here

MAX

Page 11: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LSM-Tree

LSM-Tree

MAX

stuck here

suboptimal design

Page 12: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LSM-Tree

MAX

stuck here

suboptimal designwhy? how?

Page 13: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Background

LSM-TreeLSM-Tree

Page 14: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

updates

buffer

storage

0

level

memory

Page 15: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

memoryupdates

buffer

storage

0

1

level

sort & flush runs

Page 16: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

memoryupdates

buffer

storage

0

1

2

sort merge

Page 17: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

memory

buffer

storage

0

1

2

3

level

exponentially increasing capacities

level 1

level 2

level 3

Page 18: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

memory

buffer

storage

0

1

2

3

level

fence pointers

lookup key X

one I/O per run

X

Page 19: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

memory

buffer

storage

0

1

2

3

level

fence pointers

Bloomfilters

lookup key X

X

Page 20: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

memory

buffer

storage

0

1

2

3

fence pointers

Bloom filters merging frequency

Page 21: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

merging frequency

lookup costmerge cost

Page 22: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

merging frequency

lookup costmerge cost

Page 23: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTieringlookup-optimizedmerge-optimized

merging frequency

Page 24: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTieringmerge-optimized lookup-optimized

Page 25: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

accumulate

merge-optimized lookup-optimized

Page 26: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

merge & flush

accumulate

lookup-optimizedmerge-optimized

Page 27: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

accumulate

lookup-optimizedmerge-optimized

Page 28: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

mergeaccumulate

lookup-optimizedmerge-optimized

Page 29: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

flush

accumulate merge

lookup-optimizedmerge-optimized

Page 30: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

accumulate merge

lookup-optimizedmerge-optimized

Page 31: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

logR(N)

lookup-optimizedmerge-optimized

Page 32: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

size ratio

logR(N)

lookup-optimizedmerge-optimized

Page 33: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

R runs per level

1 run per level

lookup-optimizedmerge-optimized

size ratio

logR(N)

Page 34: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

R runs per level

1 run per level

size ratio R

lookup-optimizedmerge-optimized

Page 35: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

1 run per level

LevelingTiering

1 run per level

size ratio R

lookup-optimizedmerge-optimized

Page 36: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering

T runs per level

1 run per level

size ratio R

lookup-optimizedmerge-optimized

Page 37: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

1 run per level

LevelingTiering

log sorted array

O(lNl) runs per level

size ratio R

lookup-optimizedmerge-optimized

Page 38: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

merge cost

Tiering

log

Leveling

sorted array

lookup cost

Page 39: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Tiering

log

Leveling

sorted array

size ratio Rlookup cost

merge cost

Page 40: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Tiering

log

Leveling

sorted array

R

R

size ratio Rlookup cost

merge cost

Page 41: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

lookup cost

merge cost

Page 42: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

lookup cost

merge cost

Page 43: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Monkeylookup cost

merge cost

Page 44: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Dostoevsky

lookup cost

merge cost

Monkey

Page 45: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Bloomfilters

Monkey: Optimal Navigable Key-Value Store SIGMOD17

Page 46: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Bloom filters

SIGMOD17

O(p)

O(p/R)

O(p/R2)

false positive rate

Monkey: Optimal Navigable Key-Value Store

Page 47: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Bloom filters

SIGMOD17

false positive rate

Monkey: Optimal Navigable Key-Value Store

O(e-x)

O(e-x/R)

O(e-x/R2)

Page 48: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Bloom filters

SIGMOD17

false positive rate

Monkey: Optimal Navigable Key-Value Store

O(e-x) I/O =

geometric progression

O(e-x)

O(e-x/R)

O(e-x/R2)

Page 49: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Bloom filters

SIGMOD17

Monkey: Optimal Navigable Key-Value Store

O(e-x · logR(N)) > O(e-x) I/O

Page 50: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Existing

Monkeylookup cost

merge cost

Page 51: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Existing

Monkey

Dostoevsky

lookup cost

merge cost

Page 52: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

tiering

lookup cost

merge cost

Monkey

leveling

Page 53: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

point merging

I/O overheads with leveling

long range short range

Page 54: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

exponentially decreasing

O(e-x)

O(e-x/R)

O(e-x/R2)

point

false positive rates

Page 55: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

false positive rates

point largest levelO(e-x)

O(e-x/R)

O(e-x/R2)

Page 56: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

largest level

O(e-x)

merginglong range short range point

Page 57: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

target key range

target range

O(s)

O(s/R)

O(s/R2)

long range

Page 58: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

target key range

target range

largest levellong range O(s)

O(s/R)

O(s/R2)

Page 59: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

largest level

largest level

O(e-x) O(s)

point merginglong range short range

Page 60: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

short range

target range

1

1

1

Page 61: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

all levels

target range

1

1

1

O(logR(N))

short range

Page 62: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

largest levellargest level

point

O(e-x) O(s)

all levels

O(logR(N))

merginglong range short range

Page 63: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

exponentially more work

exponentially less frequent

merging

Page 64: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

exponentially more work

exponentially less frequent

merging

Page 65: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

=

=

merging

all levels

mor

e w

ork

less frequent

Page 66: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

=

=

merging

all levels

Page 67: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

merging

merge 1

Page 68: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

merging

merge 2

Page 69: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

merging

Rmerge

Page 70: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(R)

O(R)

O(R)

merging

write-amplification

Page 71: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(R · logR(N))O(R)

O(R)

O(R)

merging

Page 72: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(e-x) O(s) O(logR(N)) O(R · logR(N))

O(s/R2)

O(s/R)

1

1

1

O(s)O(e-x)

O(e-x/R)

O(e-x/R2)

===

+

+

+

+

+

+

largest levellargest level all levels all levels

=

+

+

long range point short range merging

O(R)

O(R)

O(R)

Page 73: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(s)O(e-x)

largest levellargest level all levels

merginglong range point

O(R)

O(R)

O(R)

Page 74: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(s)O(e-x)

largest levellargest level all levels

merginglong range point

superfluous

O(R)

O(R)

O(R)

Page 75: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

merging at smaller levels is superfluousfor point lookups and long range lookups

Page 76: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

worse as data grows!

Page 77: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

poor performance

Page 78: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

poor performancelower device lifetime (on SSD)

Page 79: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Dostoevsky

Page 80: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Dostoevsky: Space-Time Optimized Evolvable Scalable Key-Value Store

Page 81: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Dostoevsky: Space-Time Optimized Evolvable Scalable Key-Value Store

very write-optimized

Page 82: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTieringlookup-optimizedmerge-optimized

Page 83: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTieringlookup-optimizedmerge-optimized

Lazy Levelingmixed-workloads

Page 84: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Lazy Leveling

Leveling

Tiering

Page 85: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Lazy Leveling

merge to have at most 1 run

merge when level fills

Page 86: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

long range short range point merging

Page 87: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(e-x)

O(e-x/R2)

O(e-x/R3)

false positive rates

point

Page 88: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

false positive rates

exponentially decreasing

point

O(e-x)

O(e-x/R2)

O(e-x/R3)

Page 89: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

false positive rates

largest level

point O(e-x)

O(e-x/R2)

O(e-x/R3)

Page 90: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(e-x)

point merginglong range short range

Page 91: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

target key range

target range

O(s)

O(s/R)

O(s/R2)

long range

Page 92: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

target key range

target range

largest level

long range O(s)

O(s/R)

O(s/R2)

Page 93: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(e-x) O(s)

point merging

long range short range

Page 94: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

1

O(R)

O(1+R·(logR(N)-1))

target key range

O(R)

short range

Page 95: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O(1+R·(logR(N)-1))O(e-x) O(s)

long range point mergingshort range

Page 96: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

write-amplification

O(1)

O(1)

O(R)

merging

Page 97: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

write-amplification

O( R + logR(N) )

merging

O(1)

O(1)

O(R)

Page 98: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O( R + logR(N) )O(e-x) O(s)

long range point short range merging

O(1+R · (logR(N)-1))

Page 99: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O( R + logR(N) )O(1+R · (logR(N)-1))O(e-x) O(s)Lazy Leveling

Leveling O(e-x) O(s) O(logR(N)) O( R · logR(N) )

== V V

long range point short range merging

Page 100: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

O( R + logR(N) )O(1+R · (logR(N)-1))O(e-x) O(s)Lazy Leveling

Leveling O(e-x) O(s) O(logR(N)) O( R · logR(N) )

Tiering O( logR(N) )O(R · logR(N))O(R · e-x) O(R · s)

V VV V

long range point short range merging

Page 101: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Leveling

merging

Lazy Leveling

Tiering

point

Page 102: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Leveling

short range Lazy Leveling

merging

Tiering

Page 103: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Leveling

long range

Lazy Leveling

merging

Tiering

Page 104: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering Lazy Leveling

Page 105: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering Lazy Levelingupdates

Page 106: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTiering Lazy Levelingupdates short range

Page 107: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

LevelingTieringupdates short rangeupdates & point

Lazy Leveling

Page 108: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Tiering

Lazy Leveling

Fluid

Leveling

Page 109: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

K runs

Z runs

LSM-TreeFluid

Page 110: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

1 runs

Lazy Leveling

LSM-TreeFluid

Page 111: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

1 runs

long range short range point merging

Lazy Leveling

Page 112: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

1 runs

long range short range point merging

Lazy Leveling

optimize

Page 113: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

2 runs

1 runs

long range short range point merging

Lazy Leveling

optimize

Page 114: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Leveling

short range merging

1 runs

1 runs

optimizelong range point

Page 115: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Leveling

short range merging

1 runs

1 runs

long range point long range pointoptimize

Page 116: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

1 runs

long range short range point merging

Lazy Leveling

optimize

Page 117: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

2 runs

long range short range point

Lazy Leveling

optimizemerging

Page 118: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

R runs

long range short range point

Tiering

optimizemerging

Page 119: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

R runs

long range short range point

Tiering

mergingoptimize

Page 120: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

1 runs

long range short range point merging

Lazy Leveling

optimize

Page 121: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

1 runs

long range short range point merging

Lazy Leveling

optimize

R size ratio

Page 122: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

R runs

1 runs

long range short range point merging

Lazy Leveling

optimize

R size ratio

Page 123: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Fluid LSM-TreeR size ratioK runs at smaller levelsZ runs at largest level

Page 124: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Fluid LSM-Tree

Tiering

Lazy Leveling

Leveling

Page 125: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive
Page 126: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updates

leveling

point lookups / updates

0

0.5

1

normalized throughput

1/100 1/10

Page 127: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updates

leveling

point lookups / updates

0

0.5

1

normalized throughput

1/100 1/10

Page 128: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updates

levelingtiering

point lookups / updates

0

0.5

1

normalized throughput

1/100 1/10

Page 129: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updates

levelingtiering

lazy leveling

point lookups / updates

1/100 1/100

0.5

1

normalized throughput

Page 130: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updates

levelingtiering

lazy leveling

Dostoevsky

point lookups / updates

0

0.5

1

normalized throughput

1/100 1/10

Page 131: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updates

0

0.5

1

normalized throughput

point lookups / updates

Dostoevsky

1/100 1/10

Page 132: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updatespoint lookups / updates

0

1

normalized throughput

Dostoevsky

0.5

Monkey

1/100 1/10

Page 133: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updatespoint lookups / updates

0

0.5

1

normalized throughput

Dostoevsky

Tuned RocksDB

Monkey

1/100 1/10

Page 134: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

0

0.5

1

norm

alize

dth

roughput(ops/s)

10�2 10�1

point lookups / updatespoint lookups / updates

0

0.5

1

normalized throughput

Dostoevsky

Tuned RocksDB

Monkey

Untuned RocksDB

1/100 1/10

Page 135: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Conclusion

Page 136: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Lazy Leveling no merging

greedy merging

Conclusion

Page 137: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Conclusion

Lazy Leveling

point

merging

Page 138: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Conclusion

Lazy Leveling

point

merging

Fluid LSM-Tree

Page 139: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Conclusion

Lazy Leveling

Fluid LSM-Tree Dostoevskymerging

point

Page 140: Dostoevsky: Better Space-Time Trade-Offs For Based Key ...nivdayan.github.io/dostoevsky_slides_pdf.pdfDostoevsky: Better Space-Time Trade-Offs For Based Key-Value Stores via Adaptive

Dostoevsky: Space-Time Optimized Evolvable Scalable Key-Value Store

VERY WRITE-OPTIMIZED

A self-designing key-value storewww.crimsondb.org

Thanks!