Scalable Low-Latency Indexes for a Key-Value Store
Ankita Kejriwal
With Arjun Gopalan, Ashish Gupta, Zhihao Jia, Stephen Yang and John Ousterhout
Scalable Low-Latency Indexes for a Key-Value Store Ankita Kejriwal - - PowerPoint PPT Presentation
Scalable Low-Latency Indexes for a Key-Value Store Ankita Kejriwal With Arjun Gopalan, Ashish Gupta, Zhihao Jia, Stephen Yang and John Ousterhout Conjecture Can a key value store support strongly consistent secondary indexes while operating
With Arjun Gopalan, Ashish Gupta, Zhihao Jia, Stephen Yang and John Ousterhout
SLIK Slide 2
SLIK Slide 3
SLIK Slide 4
SLIK Slide 5
SLIK Slide 6
SLIK Slide 7
SLIK Slide 8
SLIK Slide 9
SLIK Slide 10
SLIK Slide 11
SLIK Slide 12
SLIK Slide 13
Slide 14
Indexlet Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris
v è 5 e è 4 g è 6
Indexlet Tablet 7 m lily 8 b dahlia
b è 8 m è 7
Indexlet Server 1 Server 2 Server 3
n è 3 q è 1 a è 2
SLIK
primary key index key value index key primary key
Slide 15
Indexlet Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris
v è 5 e è 4 g è 6
Indexlet Tablet 7 m lily 8 b dahlia
b è 8 m è 7
Indexlet Server 1 Server 2 Server 3
n è 3 q è 1 a è 2
primary key index key value index key primary key
Metadata: tablet & indexlet w/ pk 1 to 3: S 1 tablet & indexlet w/ pk 4 to 6: S 2 tablet & indexlet w/ pk >= 7: S 3
Slide 16
Indexlet Tablet 1 q rose 2 a tulip 3 n violet
a è 2 n è 3 q è 1
Tablet 4 e clover 5 v daily 6 g iris
v è 5 e è 4 g è 6
Indexlet Tablet 7 m lily 8 b dahlia
b è 8 m è 7
Indexlet Server 1 Server 2 Server 3
SLIK
Slide 17
Indexlet Tablet 1 q rose 2 a tulip 3 n violet
a è 2 n è 3 q è 1
Tablet 4 e clover 5 v daily 6 g iris
v è 5 e è 4 g è 6
Indexlet Tablet 7 m lily 8 b dahlia
b è 8 m è 7
Indexlet Server 1 Server 2 Server 3
SLIK
Slide 18
Indexlet Tablet 1 q rose 2 a tulip 3 n violet
a è 2 n è 3 q è 1
Tablet 4 e clover 5 v daily 6 g iris
v è 5 e è 4 g è 6
Indexlet Tablet 7 m lily 8 b dahlia
b è 8 m è 7
Indexlet Server 1 Server 2 Server 3
SLIK
Slide 19
Indexlet Tablet 1 q rose 2 a tulip 3 n violet
a è 2 n è 3 q è 1
Tablet 4 e clover 5 v daily 6 g iris
v è 5 e è 4 g è 6
Indexlet Tablet 7 m lily 8 b dahlia
b è 8 m è 7
Indexlet Server 1 Server 2 Server 3
Slide 20
SLIK
Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris Tablet 7 m lily 8 b dahlia Server 1 Server 2 Server 3 Indexlet
a è 2 b è 8 e è 4 g è 6
Server 4 Indexlet
n è 3 m è 7 v è 5 q è 1
Server 5 primary key index key value index key primary key
Slide 21
SLIK
Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris Tablet 7 m lily 8 b dahlia Server 1 Server 2 Server 3 Indexlet
a è 2 b è 8 e è 4 g è 6
Server 4 Indexlet
n è 3 m è 7 v è 5 q è 1
Server 5 primary key index key value index key primary key
Metadata: tablet w/ pk 1 to 3: S 1 tablet w/ pk 4 to 6: S 2 tablet w/ pk >= 7: S 3 indexlet w/ sk a to g: S 4 indexlet w/ sk >= h: S 5
Slide 22 SLIK
Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris Tablet 7 m lily 8 b dahlia Server 1 Server 2 Server 3 Indexlet
a è 2 b è 8 e è 4 g è 6
Server 4 Indexlet
n è 3 m è 7 v è 5 q è 1
Server 5
Slide 23
Indexlet
a è 2 b è 8 e è 4 g è 6
Server 4 Indexlet
n è 3 m è 7 v è 5 q è 1
Server 5 Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris Tablet 7 m lily 8 b dahlia Server 1 Server 2 Server 3
SLIK
Slide 24
Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris Tablet 7 m lily 8 b dahlia Server 1 Server 2 Server 3 Indexlet
a è 2 b è 8 e è 4 g è 6
Server 4 Indexlet
n è 3 m è 7 v è 5 q è 1
Server 5
SLIK
Slide 25
Tablet 1 q rose 2 a tulip 3 n violet Tablet 4 e clover 5 v daily 6 g iris Tablet 7 m lily 8 b dahlia Server 1 Server 2 Server 3 Indexlet
a è 2 b è 8 e è 4 g è 6
Server 4 Indexlet
n è 3 m è 7 v è 5 q è 1
Server 5
SLIK Slide 26
SLIK Slide 27
SLIK Slide 28
SLIK Slide 29
SLIK Slide 30
SLIK Slide 31
SLIK Slide 32
SLIK Slide 33
SLIK Slide 34
SLIK Slide 35
SLIK Slide 36
Slide 37
Slide 38
Foo Bob ... Object Index Entry Bob è Foo
Slide 39
Foo Bob ... Object Index Entry Bob è Foo Sam è Foo
Slide 40
Foo Sam ... Object Index Entry Bob è Foo Sam è Foo
Slide 41
Foo Sam ... Object Index Entry Sam è Foo
Slide 42
time Bob è Foo Sam è Foo Foo Bob ... Foo Sam ... Object Index Entry modify object remove object write object
Slide 43
time Bob è Foo Sam è Foo Foo Bob ... Foo Sam ... Object Index Entry modify object remove object write object
Slide 44
time Bob è Foo Sam è Foo commit point commit point commit point Foo Bob ... Foo Sam ... Object Index Entry modify object remove object write object x
Slide 45
time Bob è Foo Sam è Foo commit point commit point commit point Foo Bob ... Foo Sam ... Object Index Entry modify object remove object write object
SLIK Slide 46
SLIK Slide 47
Slide 48
SLIK
SLIK Slide 49
Slide 50
Slide 51
10 10 10 10 10 10 10 Size of Index (# objects)
50 100 150 200 250 100 101 102 103 104 105 106 (a) Lookup Latency (µs)
H-Store
142.10 138.18 150.11 152.37 134.97 147.42 132.00
SLIK TCP
45.2 44.9 42.7 48.5 49.7 45.6 54.5
SLIK
11.0 10.2 11.7 11.6 12.7 12.8 13.1
Slide 52
10 10 10 10 10 10 10 Size of Index (# objects)
50 100 150 200 250 100 101 102 103 104 105 106 (a) Lookup Latency (µs)
H-Store
142.10 138.18 150.11 152.37 134.97 147.42 132.00
SLIK TCP
45.2 44.9 42.7 48.5 49.7 45.6 54.5
SLIK
11.0 10.2 11.7 11.6 12.7 12.8 13.1
Slide 53
50 100 150 200 250 100 101 102 103 104 105 106 (b) Overwrite Latency (µs) Size of Index (# objects)
H-Store
143.51 143.00 151.39 153.28 137.74 148.88 133.54
SLIK TCP
124.4 135.8 126.5 125.9 124.3 123.8 129.7
SLIK
31.4 32.7 34.2 34.3 35.2 35.2 37.0
Slide 54
H-Store via PK
152.97 265.91 273.41 285.99 287.72
H-Store via SK
181.98 1474.39 1682.16 1704.69 1756.99
SLIK TCP
138.5 139.1 156.2 165.2 164.3 175.3 175.7 179.1 182.0 184.6
SLIK
33.0 35.3 39.8 39.0 42.7 42.4 46.4 47.3 49.5 51.2
Slide 55
H-Store via PK
152.97 265.91 273.41 285.99 287.72
H-Store via SK
181.98 1474.39 1682.16 1704.69 1756.99
SLIK TCP
138.5 139.1 156.2 165.2 164.3 175.3 175.7 179.1 182.0 184.6
SLIK
33.0 35.3 39.8 39.0 42.7 42.4 46.4 47.3 49.5 51.2
Slide 56
H-Store via PK
152.97 265.91 273.41 285.99 287.72
H-Store via SK
181.98 1474.39 1682.16 1704.69 1756.99
SLIK TCP
138.5 139.1 156.2 165.2 164.3 175.3 175.7 179.1 182.0 184.6
SLIK
33.0 35.3 39.8 39.0 42.7 42.4 46.4 47.3 49.5 51.2
Slide 57
Independent Partitioning Colocation
634 940 1249 1558 1859 2184 2478 2782 3092 335 461 423 463 447 457 447 357 441 418 435
Slide 58
Slide 59
H-Store SLIK TCP SLIK
96.90 312.35 347.32 396.27 430 653 794 1001 1199 1352 1445 1663 1807 220 580 1127 1619 2197 2655 3199 3629 4248 4629 5069
Colocation size 1 Colocation size 10 Independent size 1 Independent size 10 8.3 26.7 87.3 16.2 89.7 15.2 16.7 12.7 22.3 28.8
Slide 60
Slide 61
H-Store
119.4 152.6 179.6 199.2 215.6 243.4 240.3 267.4 269.8 267.2
SLIK TCP
49.9 55.6 58.2 69.1 81.6 90.6 91.0 112.7 114.4 113.3
SLIK
13.1 13.3 13.9 13.7 14.4 14.7 14.5 14.4 14.6 14.7
SLIK Slide 62
SLIK Slide 63
Slide 64 SLIK
Slide 65 SLIK
Slide 66 SLIK
Slide 67 SLIK
Slide 68 SLIK
SLIK Slide 69
SLIK Slide 70
SLIK Slide 71
SLIK Slide 72
SLIK Slide 73
SLIK Slide 74
SLIK Slide 75