A Tour of the NoSQL World
description
Transcript of A Tour of the NoSQL World
Slide 1 Copyright © 2011 MarkLogic® Corporation. All rights reserved.Slide 1
A Tour of the NoSQL WorldDavid Cassel, MarkLogic Sr. Consultant7 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?
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
statusMarkLogic
Slide 7 Copyright © 2011 MarkLogic® Corporation. All rights reserved.Slide 7
Key-Value Storeapp_setting_width 450user1923_color Reduser1923_age 18user3371_color Blueuser4344_color Brackishuser1923_height 6' 0"user3371_age 34error_msg_457 There is no file %1 hereerror_message_1 There is no user with %1 name1923_name Jimuser1923_name Jim Smithuser1923_lname SmithApplication_Installed truelog_errors 1install_path C:\Windows\System32\RestrictedServerName localhosttest testtest1 testtest123 Brackishdevonlywonderwomanvalue 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 zip23 Bugs Bunny 48389983 Foghorn Leghorn 19394420 Marvin Martian 04829185 Elmer Fudd 25749
23,Bugs,Bunny,48389983,Foghorn,Leghorn,19394420,Marvin,Martian,04829185,Elmer,Fudd,25749
23,983,420,185Bugs,Foghorn,Marvin,ElmerBunny,Leghorn,Martian,Fudd48389,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
Slide 19 Copyright © 2011 MarkLogic® Corporation. All rights reserved.Slide 19
ACID -- Consistency
/content/foo.xmlid
Name
Job
1 Dave Developer1 Bob Sales
1
2
Slide 20 Copyright © 2011 MarkLogic® Corporation. All rights reserved.Slide 20
ACID -- Isolation
Write DoneWrite
Read
t=0 t=1 t=2 t=3
Dirty readsNon-repeatable readsPhantom 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.netTwitter: @dmcassel