Upload
dharshan-rangegowda
View
179
Download
0
Embed Size (px)
Citation preview
DHARSHAN RANGEGOWDAFOUNDER, SCALEGRID.IO
APRIL 2014
Why NoSQL?
What is NoSQL?
“Not only SQL”“Not SQL”Term popularized by Eric
Evans of Rackspace in 2009
Class of databases that don’t use a “Relational schema”
NoSQL <> No T-SQL
NoSQL history
Need arose in Early 2000 due to difficulties scaling MySQL databases Need to deal with large amounts of data E.g. MongoDB founders are from Doubleclick
Classification
• Classified along multiple dimensions
• Data model
• Consistency
• Performance
Complete classification
Data model
Flexible data model structured, unstructured & semi structured data
Different types of data JSON/XML Documents
Files Store files & structured data No separate workflow for files
Schema less
Each row in a table can be different!
Double edged sword There is always a schema, in the db or in the code
Developer agility
Focus on developer agility
Extremely easy to get started
Got rid of impedance mismatch between app code and SQL
Always work with objects• Big hit with developers
Developer agility
Great Geo query support Extremely important for most web apps today
Great integration with new frameworks Node.js, Meteor.js
Database Scaling
• Easy (relatively) scale for your database– Scale up or scale out– Scale out using commodity servers– Automatic partitioning & rebalancing
Scale out : MongoDB shards
Cons?
Not ACID compliant (mostly) Transaction scope is usually limited Consistency can also vary If you are writing a banking application stick to
RDBMS Engineering
Relatively immature Don’t have 3 decades of engineering in them
Adoption
• Web properties– Scale features– Document support– Geo support
• Data warehouse–Handle TB’s of data– Cost
Future?