Scalable, survivable, strongly consistent, SQL
CockroachDB
presented by Ben Darnell / CTO
CockroachDB Scalable, survivable, strongly consistent, SQL - - PowerPoint PPT Presentation
CockroachDB Scalable, survivable, strongly consistent, SQL presented by Ben Darnell / CTO About Me Co-founder of Cockroach Labs Previously at Google, Dropbox, Square @cockroachdb Agenda Motivation High-level architecture
Scalable, survivable, strongly consistent, SQL
presented by Ben Darnell / CTO
@cockroachdb
@cockroachdb
@cockroachdb
@cockroachdb
Hard to scale horizontally
Scalability with strings attached
OR
burden due to complex data modeling
with querying and analytics
correctness issues and higher risk of data corruption
results in high operational complexity and application rewrites
(stand-by servers) or lost consistency (asynchronous replication)
@cockroachdb
@cockroachdb
@cockroachdb
SQL Transactional KV Distribution Replication Storage
@cockroachdb
SQL Transactional KV Distribution Replication
@cockroachdb
SQL Transactional KV Distribution Replication
@cockroachdb
Inventory
@cockroachdb
Inventory
@cockroachdb
ID Name Quantity 1 Glove 1 2 Ball 4 3 Shirt 2 4 Shorts 12 5 Bat 6 Shoes 4
Inventory
@cockroachdb
Name Ball Bat Glove Shirt Shoes Shorts ID Name Quantity 1 Glove 1 2 Ball 4 3 Shirt 2 4 Shorts 12 5 Bat 6 Shoes 4
Inventory Name_Idx
@cockroachdb
SQL Transactional KV Distribution Replication
@cockroachdb
@cockroachdb
Ø-lem
apricot banana blueberry cherry grape
lem-pea
lemon lime mango melon
pea-∞
peach pear pineapple raspberry strawberry
@cockroachdb
Ø-lem
apricot banana blueberry cherry grape
lem-pea
lemon lime mango melon
pea-∞
peach pear pineapple raspberry strawberry Ø-lem lem-pea pea-∞
shard index
@cockroachdb
Ø-lem
apricot banana blueberry cherry grape
lem-pea
lemon lime mango melon
pea-str
peach pear pineapple raspberry Ø-lem lem-pea
shard index str-∞
strawberry tamarillo tamarind str-∞ pea-str
@cockroachdb
SQL Transactional KV Distribution Replication
@cockroachdb
Node 1
Range 1 Range 2
Node 2
Range 1 Range 2
Node 3
Range 1
Range 2
Range 3 Range 3 Range 2 Range 3
@cockroachdb
Node 1
Range 1 Range 2
Node 2
Range 1 Range 2
Node 3
Range 1
Node 4
Range 2
Range 3 Range 3 Range 2 Range 3
@cockroachdb
Node 1
Range 1 Range 2
Node 2
Range 1 Range 2
Node 3
Range 1
Node 4
Range 2
Range 3 Range 3 Range 2 Range 3 Range 3
@cockroachdb
Node 1
Range 1 Range 2
Node 2
Range 1 Range 2
Node 3
Range 1
Node 4
Range 2
Range 3 Range 3 Range 2 Range 3 Range 3
@cockroachdb
Node 1
Range 1 Range 2
Node 2
Range 1 Range 2
Node 3
Range 1
Node 4
Range 2
Range 3 Range 3 Range 2 Range 3
@cockroachdb
Node 1
Range 1 Range 2 Range 2
Node 2 Node 3
Range 1
Node 4
Range 2
Range 3 Range 1 Range 3 Range 2 Range 3
@cockroachdb
Node 1
Range 1 Range 2 Range 2
Node 2 Node 3
Range 1
Node 4
Range 2
Range 3 Range 1 Range 3 Range 2 Range 3
@cockroachdb
Node 1
Range 1 Range 2 Range 2
Node 2 Node 3
Range 1
Node 4
Range 2
Range 3 Range 1 Range 3 Range 2 Range 3
Range 1 Range 3
@cockroachdb
Node 1
Range 1 Range 2 Range 2
Node 3
Range 1
Node 4
Range 2
Range 3 Range 2 Range 3 Range 1 Range 3
@cockroachdb
@cockroachdb
@cockroachdb
○Meet regulatory constraints ○Low-latency reads / writes
○Simplified app development
@cockroachdb
SELECT l_shipmode, AVG(l_extendedprice) FROM lineitem GROUP BY l_shipmode;
@cockroachdb
@cockroachdb
@cockroachdb