250 likes | 450 Views
A Tour of the NoSQL World. David Cassel, MarkLogic Sr. Consultant 7 Nov 2011. Why NoSQL ?. RDBMSes are familiar. ubiquitous. backed by a body of research. Why NoSQL ?. What is NoSQL ?.
E N D
A Tour of the NoSQL World David Cassel, MarkLogic Sr. Consultant7 Nov 2011
Why NoSQL? RDBMSes are • familiar • ubiquitous • backed by a body of research
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
Graph Databases Mark Logic Dave status Dawn Chris
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 ServerNamelocalhost test test test1 test test123 Brackish devonly wonderwoman value key http://dba.stackexchange.com/questions/607/what-is-a-key-value-store-database
Column Stores 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
Document Store <post> … </post> /posts/a-custom-facet-for-the-search-api.xml <post> … </post> /posts/unparsing-a-custom-facet.xml
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>
Querying a Document Store cts:search(/blog, cts:and-query(( cts:word-query(“facet”) cts:near-query(( cts:word-query(“searchapi”) cts:word-query(“custom”)), 10) )) ) db.things.find({name:"mongo"}) .forEach(printjson);
Scaling Scale Up Scale Out
No Schema • New Requirement: • Our company has acquired a small publishing house. Put their publications in the database with our existing ones.
ACID properties A C I D tomicity onsistency solation urability
ACID -- Consistency /content/foo.xml 1 2
ACID -- Isolation Write Write Done Read t=2 t=0 t=1 t=3 Dirty reads Non-repeatable reads Phantom reads
ACID – Durability RAM Journal Disk
Where does MarkLogic fit? A C I D tomicity onsistency solation urability Enterprise Level (100s of terabytes) Express License
The Other Side of the Coin • Variety • Architecture (yay!) • Maturity • Administration • Tool support • Knowledgeable developers • Support • Open Source – support companies • Commercial – MarkLogic
NoSQL means: The Right Tool for the Job Blog: http://blog.davidcassel.net Twitter: @dmcassel