Polyglot Persistence

Post on 10-May-2015

1,207 views 2 download

Tags:

transcript

POLYGLOT PERSISTENCE

alex brandtsr developer

Wednesday, August 21, 13

2

Wednesday, August 21, 13

3

Wednesday, August 21, 13

4

Wednesday, August 21, 13

5

RDBMS may not be the best fit

Wednesday, August 21, 13

6

Wednesday, August 21, 13

7

Wednesday, August 21, 13

INTRODUCTION TO NOSQL

• NoSQL Database (1998)• NoREL• “Not only SQL”• NoSQL (2009)

8

Wednesday, August 21, 13

9

5 Characteristics

Wednesday, August 21, 13

10

Non-relational

Wednesday, August 21, 13

11

Distributed

Wednesday, August 21, 13

12

Open-source

Wednesday, August 21, 13

13

Horizontally Scalable

Wednesday, August 21, 13

14

Schema-less

Wednesday, August 21, 13

orders

customers

order lines

credit cards

ID: 1001

line items:

customer: Ann

0321293533

0321601912

0131495054

2

1

1

$48 $48

$39

$51

$39

$51

payment details:

Card: AmexCC #: 12345expires: 04/2001

15

Wednesday, August 21, 13

16

Types in Detail

Wednesday, August 21, 13

Key/Value DatabaseS

17

Wednesday, August 21, 13

Key/Value DatabaseS

• Good Use Cases:

• Storing Session Information

• User Profiles & Preferences

• Shopping Cart Data

• Bad Use Cases:

• Data Relationships

•Multi-operation Transactions

•Query by Data

18

Wednesday, August 21, 13

Key/Value DatabaseS

• Good Use Cases:

• Storing Session Information

• User Profiles & Preferences

• Shopping Cart Data

• Bad Use Cases:

• Data Relationships

•Multi-operation Transactions

•Query by Data

19

Wednesday, August 21, 13

document Database

20

Wednesday, August 21, 13

document Databases

•Good Use Cases:

• Event Logging

• Blogging Platforms

• Real-time Analytics

• Article storage

• Bad Use Cases:

• Complex Transactions

•Queries against Varying Aggregate Structures

21

Wednesday, August 21, 13

document Databases

•Good Use Cases:

• Event Logging

• Blogging Platforms

• Real-time Analytics

• Article storage

• Bad Use Cases:

• Complex Transactions

•Queries against Varying Aggregate Structures

22

Wednesday, August 21, 13

COLUMN FAMILY

23

Wednesday, August 21, 13

24

Wednesday, August 21, 13

COLUMN-FAMILY datastores

•Good Use Cases:

• Event Logging

• Blogging Platforms

• Counters (page visits)

• Expiring Usage

• Bad Use Cases:

• ACID transactions required

• Early prototype applications

25

Wednesday, August 21, 13

graph database

26

Wednesday, August 21, 13

Amanda

KNOWS

KNOWS

KNOWS

Robert

Gerry

Lamar

KNOWS

App 1

BUILTBUILT

KNOWS

App 2

USES

BUILT

Christie

KNOWS

Destiny

Jessica

KNOWS

App 3

BUILT

USES

USES

USES

KNOWS

graph database

27

Wednesday, August 21, 13

graph databases

•Good Use Cases:

• Connected Data

• Location-based services

• Recommendation engines

• Bad Use Cases:

• Ability to update specific aggregates

28

Wednesday, August 21, 13

Companies using nosql

29

DATABASE COMPANIES

Wednesday, August 21, 13

THE FUTURE IS POLYGLOT

30

Neo4Jdatabase

Cassandradatabase

Couchdatabase

MongoDBdatabase

RELATIONALDATABASE

Graph-structureddomain rules

Columnar dataaccess with

decentralization

Documentstructures

Document structureswith offlineprocessing

(Actors) (Actors)

(Actors)(Actors)

Asynchronous message passing

MODULE 1

MODULE 2

MODULE 3

MODULE 4

IEEE Software Sept/October 2010 - Debasish Ghosh / Twitter @debasishg

Wednesday, August 21, 13

31

POLYGLOT PATTERN: cache

ORDERTAKING

RESTAURANTMANAGEMENT

REDISCACHE

MYSQL DATABASE SECONDFIRST

CONSUMERRESTAURANT

OWNER

Credit: @crichardson

Wednesday, August 21, 13

32

POLYGLOT PATTERN: write to sql and NOSQL

NEWTWEET

INSERT

LPUSHXLTRIM

MySQL

TWEETS

FOLLOWS

FOLLOWERS

Redis: Timeline

FOLLOWER 1

FOLLOWER 2

FOLLOWER 3

Avoidexpensive

MySQL joins

Credit: @crichardson

Wednesday, August 21, 13

33

POLYGLOT PATTERN: REPLICATE FROM MYsql to NOSQL

QUERYSERVICE

UPDATESERVICE

REDISMYSQL

DATABASE

SYSTEMOF RECORD

MATERIALIZED VIEW

READER WRITER

replicate and

denormalize

query() update()

Credit: @crichardson

Wednesday, August 21, 13

34

Atomic

Consistent

Isolated

Durable

ACID to base

Basically Available

Soft state

Eventually consistent

Wednesday, August 21, 13