Why NoSQL? Why Riak? Justin Sheehy justin@basho.com 1 What's all - - PowerPoint PPT Presentation

why nosql why riak
SMART_READER_LITE
LIVE PREVIEW

Why NoSQL? Why Riak? Justin Sheehy justin@basho.com 1 What's all - - PowerPoint PPT Presentation

Why NoSQL? Why Riak? Justin Sheehy justin@basho.com 1 What's all of this NoSQL nonsense? Voldemort Riak HBase Neo4j Cassandra MongoDB CouchDB Membase Redis (and the list goes on...) 2 What went wrong with SQL databases? Nothing!


slide-1
SLIDE 1

Why NoSQL?

Justin Sheehy

justin@basho.com

Why Riak?

1

slide-2
SLIDE 2

What's all of this NoSQL nonsense?

2

MongoDB CouchDB Cassandra Voldemort Neo4j Membase Redis HBase Riak

(and the list goes on...)

slide-3
SLIDE 3

What went wrong with SQL databases?

3

Nothing! They are great tools.

slide-4
SLIDE 4

What went wrong with SQL databases?

4

Nothing! They are great tools.

slide-5
SLIDE 5

NoSQL came before SQL.

5

IBM IMS MUMPS Honeywell IDS Cincom TOTAL dbm VAX DBMS

(and the list goes on...)

PICK

slide-6
SLIDE 6

But that's not really NoSQL, is it?

6

IBM IMS MUMPS Honeywell IDS Cincom TOTAL dbm VAX DBMS

(and the list goes on...)

PICK

slide-7
SLIDE 7

The start of today's NoSQL

7

Amazon: Dynamo (2007) Google: Bigtable (2006) Technology is not the important part!

slide-8
SLIDE 8

8

Amazon sells books. (esp. 3+ years ago) Why not just use Oracle/MySQL/etc? Technology is not the important part!

most

The start of today's NoSQL

slide-9
SLIDE 9

9

Amazon sells books. (esp. 3+ years ago) Why not just use Oracle/MySQL/etc? Business needs (re)created demand for alternative database technologies. The start of today's NoSQL

slide-10
SLIDE 10

What's all of this NoSQL nonsense?

10

MongoDB CouchDB Cassandra Voldemort Neo4j Membase Redis HBase Riak

Do we really need all of these?

slide-11
SLIDE 11

It's still about business needs.

11

Redis Riak

u s e c a s e s d r i v e d e c i s i

  • n

s !

slide-12
SLIDE 12

It's still about business needs.

12

Redis Riak

w h a t s

  • l

v e s y

  • u

r r e a l p r

  • b

l e m c h

  • s

e

slide-13
SLIDE 13

13

what solves your real problem how do you know ? two places to start:

➡ innate/exposed data model ➡ distribution/operational model

slide-14
SLIDE 14

14

data model differences

requirements usually from app developers

Native Data Structures Semi-Structured Documents Bigtable Column Family Tabular/Relational Hierarchical Graph Traversal Key/Value Indexed Query

slide-15
SLIDE 15

15

data model differences

not much useful ordering

Bigtable Column Family Graph Traversal

w h i c h

  • n

e i s m

  • r

e p

  • w

e r f u l ?

slide-16
SLIDE 16

16

ColFam Graph K/V etc etc

data model differences

Cassandra Voldemort N e

  • 4

j

slide-17
SLIDE 17

17

distribution model differences

requirements usually from biz or operations

Locally Embedded Single Server Distributed System Server Replication

slide-18
SLIDE 18

18

distribution model differences

requirements usually from biz or operations

Locally Embedded Single Server Distributed System Server Replication

slide-19
SLIDE 19

19

starting to decide

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc etc

slide-20
SLIDE 20

20

starting to decide

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc etc

We need a K/V

  • r ColFam store.
slide-21
SLIDE 21

21

starting to decide

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc etc

We need a K/V

  • r ColFam store.

We need to recover quickly from server failure.

slide-22
SLIDE 22

22

Distributed System Server Replication

ColFam K/V

now we're getting somewhere!

slide-23
SLIDE 23

23

Distributed System Server Replication

ColFam K/V

we can make a shorter list...

Riak, Voldemort, CouchDB, Cassandra, HBase...

slide-24
SLIDE 24

24

Distributed System Server Replication

ColFam K/V

we can make a shorter list...

Riak, Voldemort, CouchDB, Cassandra, HBase...

then we can narrow it more...

protocols, licensing, benchmarking, simplicity...

slide-25
SLIDE 25

25

Distributed System Server Replication

ColFam K/V

we can make a shorter list...

Riak, Voldemort, CouchDB, Cassandra, HBase...

then we can narrow it more...

protocols, licensing, benchmarking, simplicity...

and make a choice!

slide-26
SLIDE 26

26

Distributed System Server Replication

ColFam K/V

we can make a shorter list...

Riak, Voldemort, CouchDB, Cassandra, HBase...

then we can narrow it more...

protocols, licensing, benchmarking, simplicity...

and make a choice!

How about MySQL? I believe we could, Bob.

slide-27
SLIDE 27

27

How about MySQL? I believe we could, Bob. wait, WHAT?

slide-28
SLIDE 28

28

How about MySQL? I believe we could, Bob. wait, WHAT?

Great tools are still great tools.

slide-29
SLIDE 29

29

Great tools are still great tools. Understand your needs before you choose.

slide-30
SLIDE 30

30

So what's so special about ?

slide-31
SLIDE 31

31

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc etc

Riak KV

slide-32
SLIDE 32

32

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc etc

Riak KV Riak Search

slide-33
SLIDE 33

33

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc etc

Riak KV Riak Search Riak Core

slide-34
SLIDE 34

34

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc ?

improvements flow upward Riak Core can flow sideways

slide-35
SLIDE 35

35

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc ?

Will the market need this?

slide-36
SLIDE 36

36

Locally Embedded Single Server Distributed System Server Replication

ColFam Graph K/V etc ?

Will the market need this? I know how to get there.

slide-37
SLIDE 37

37

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine

The Riak key/value stack:

slide-38
SLIDE 38

38

client application protobuf http riak_client dynamo model FSMs vnode master k/v vnode storage engine client application protobuf http riak_client dynamo model FSMs the cluster nodes are united by riak core via gossip, consistent hashing, etc vnode master k/v vnode storage engine client application protobuf http riak_client dynamo model FSMs vnode master k/v vnode storage engine

slide-39
SLIDE 39

39

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine

just a local k/v store:

slide-40
SLIDE 40

40

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine

just an abstract k/v store:

slide-41
SLIDE 41

41

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine

a distributed system at heart:

slide-42
SLIDE 42

42

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine

a distributed system at heart: virtual nodes gossip failure detection vector clocks sloppy quorums remote dispatch dynamic membership

slide-43
SLIDE 43

43

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine

carefully managed complexity...

slide-44
SLIDE 44

44

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode storage engine

allows simplicity at the edges

slide-45
SLIDE 45

45

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode k/v storage engine

let's make a dist. search system!

slide-46
SLIDE 46

46

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode k/v storage engine

let's make a dist. search system!

adapted FSMs

slide-47
SLIDE 47

47

client application protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode k/v storage engine

let's make a dist. search system!

adapted FSMs search storage search vnode

slide-48
SLIDE 48

48

protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode k/v storage engine adapted FSMs search storage search vnode search client solr lucene

done!

slide-49
SLIDE 49

49

protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode k/v storage engine adapted FSMs search storage search vnode search client solr lucene

the sum is greater than the parts

slide-50
SLIDE 50

50

I don't know what's next

slide-51
SLIDE 51

51

protobuf http riak_client dynamo model FSMs riak core vnode master k/v vnode k/v storage engine adapted FSMs search storage search vnode search client solr lucene

I don't know what's next, but I know how to build it.

more FSMs X client another interface X storage X vnode

I don't know what's next

slide-52
SLIDE 52

52

riak core

I don't know what's next, but I know how to build it. I don't know what's next scalability fault-tolerance ease of operations interoperability pluggable protocols flexible storage predictable availability I know how to build it

slide-53
SLIDE 53

53

scalability fault-tolerance ease of operations interoperability pluggable protocols flexible storage predictable availability I know how to build it I know how to build it, but you don't have to.

slide-54
SLIDE 54

54

  • ur earlier evaluation criteria:

➡ innate/exposed data model ➡ distribution/operational model

slide-55
SLIDE 55

55

➡ innate/exposed data model ➡ distribution/operational model

fully distributed system

slide-56
SLIDE 56

56

➡ innate/exposed data model ➡ distribution/operational model

fully distributed system flexible and growing

slide-57
SLIDE 57

57

Justin Sheehy

justin@basho.com

http://www.basho.com/