A Tour of the NoSQL World

longtermagonizingInternet και Εφαρμογές Web

13 Δεκ 2013 (πριν από 3 χρόνια και 4 μήνες)

160 εμφανίσεις

Slide
1

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
1

A Tour of the
NoSQL

World

David Cassel, MarkLogic Sr. Consultant

7 Nov 2011

Slide
2

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
2

Why
NoSQL
?

RDBMSes

are


familiar


ubiquitous


backed by a body
of research

Slide
3

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
3

Why
NoSQL
?

doc

meta

title

abstract

content

chapter

Database

Server

Server

Server

Slide
4

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
4

What is
NoSQL
?


"
NoSQL

refers to a class of databases 1) are intended to perform at internet
(
Facebook
, Twitter, LinkedIn) scale and 2) reject the relational model in favor
of other (key
-
value, document, graph) models."
--

http://www.greenhornconnect.com/blog/dan
-
croak
-
what
-
nosql



"Next Generation Databases mostly addressing some of the points: being
non
-
relational, distributed,

open
-
source and horizontally scalable. The
original intention has been

modern web
-
scale databases. … Often more
characteristics apply as: schema
-
free, easy replication support, simple API,
eventually consistent /BASE (not ACID), a huge data amount, and more."
--

http://nosql
-
database.org/



"
NoSQL

(sometimes expanded to "not only SQL") is a broad class of
database management systems

that differ from classic
relational database
management systems

(
RDBMSes
)…. These data stores may not require
fixed
table schemas
, usually avoid
join

operations, and typically
scale
horizontally
."
--

Wikipedia

Slide
5

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
5

What is
NoSQL
?

Slide
6

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
6

Graph Databases

Dave

Dawn

Chris

status

Mark

Logic

Slide
7

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
7

Key
-
Value Store

app_setting_width

450

user1923_color

Red

user1923_age

18

user3371_color

Blue

user4344_color

Brackish

user1923_height

6' 0"

user3371_age

34

error_msg_457

There is no file %1 here

error_message_1

There is no user with %1 name

1923_name

Jim

user1923_name

Jim Smith

user1923_lname

Smith

Application_Installed

true

log_errors


1

install_path


C:
\
Windows
\
System32
\
Restricted

ServerName

localhost

test


test

test1


test

test123


Brackish

devonly

wonderwoman

value


key

http://dba.stackexchange.com/questions/607/what
-
is
-
a
-
key
-
value
-
store
-
database

Slide
8

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
8

Column Stores

id

first

last

zip

23

Bugs

Bunny

48389

983

Foghorn

Leghorn

19394

420

Marvin

Martian

04829

185

Elmer

Fudd

25749

23,Bugs,Bunny,48389

983,Foghorn,Leghorn,19394

420,Marvin,Martian,04829

185,Elmer,Fudd,25749

23,983,420,185

Bugs,Foghorn,Marvin,Elmer

Bunny,Leghorn,Martian,Fudd

48389,19394,04829,25749

Slide
9

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
9

Document Store

/posts/a
-
custom
-
facet
-
for
-
the
-
search
-
api.xml

<post>




</post>

/
posts/unparsing
-
a
-
custom
-
facet.xml

<post>




</post>

Slide
10

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
10

Querying a Document Store

Slide
11

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
11

Querying a Document Store

<post>


<meta>


<title>A custom facet for the Search API</title>


<author>David Cassel</author>


<published>2011
-
07
-
27</published>


<summary>…</summary>


<tags>


<tag>
marklogic
</tag>


<tag>search
api
</tag>


</tags>


<category>Software Development</category>


</meta>


<text>…</text>

</post>






Slide
12

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
12

Querying a Document Store

cts:search
(/blog,


cts:and
-
query((


cts:word
-
query(“facet
”)


cts:near
-
query((


cts:word
-
query(“search

api
”)


cts:word
-
query(“custom
”)),


10)


))

)

db.things.find({name:"mongo
"})


.
forEach(printjson
);

Slide
13

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
13

Scaling

Scale Up

Scale Out

Slide
14

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
14

Growing the database

Slide
15

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
15

No Schema

New Requirement:


Our company has acquired a small publishing
house. Put their publications in the database with
our existing ones.

Slide
16

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
16

Does all this help?

Slide
17

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
17

ACID properties

A

C

I

D

tomicity

onsistency

solation

urability

Slide
18

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
18

ACID
--

Atomicity

Remove $
from A

Add $ to B

Complete
Transaction

Slide
19

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
19

ACID
--

Consistency

/content/
foo.xml

id

Name

Job

1

Dave

Developer

1

Bob

Sales

1

2

Slide
20

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
20

ACID
--

Isolation

Write

Done

Write

Read

t
=0

t
=1

t
=2

t
=3

Dirty reads

Non
-
repeatable reads

Phantom reads

Slide
21

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
21

ACID


Durability

RAM

Journal

Disk

Slide
22

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
22

NoSQL

Support

Slide
23

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
23

Where does MarkLogic fit?

A

C

I

D

tomicity

onsistency

solation

urability

Express License

Enterprise Level

(100s of terabytes)

Slide
24

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
24

The Other Side of the Coin


Variety


Architecture (
yay
!)


Maturity


Administration


Tool support


Knowledgeable developers


Support


Open Source


support companies


Commercial


MarkLogic


Slide
25

Copyright © 2011
MarkLogic
®

Corporation. All rights reserved.

Slide
25

NoSQL

means:

The Right Tool for the Job

Blog:
http://blog.davidcassel.net

Twitter: @
dmcassel