SlideShare une entreprise Scribd logo
1  sur  56
RDBMS: Past and
Present
Web Scale challenges today
Data explosion in past few years
Single web request may fire 10s/100s of
queries!
Agile development
Hardware challenges - leverage low cost cloud
infrastructure
Introduced in 1970s
Solved prevalent data storage issues
3
What is
CAP Theorem - It is impossible for a
distributed computer system to
simultaneously provide all three at the
same time
The Need
A
C P
MongoDB, Redis,
Hbase, BigTable
Cassandra, SimpleDB,
DynamoRDBMS
5
Solutions
Availability
Automatic
Replication
Auto
Sharding
Integrated
Caching
Dynamic
Schema
Consistency
Document
Database
Graph
Stores
Key-Value
Stores
Column
Stores
NoSQL
6
Database
Types
NoSQ
L
Documen
t
Database
Graph
Stores
Key-
Value
Stores
Column
Stores
Document Database
What is it?
• Documents are independent units
• Can store semi-structured Data
with ease
Where is it
useful?
• Ex. Product information in an
ecommerce site.
Popular
DBs
• MongoDB, CouchDB
8
Graph stores
What is it?
• Based on graph theory
• Employ nodes, properties, and
edges
Where is it
useful?
• Ex. Social graphs
Popular
DBs
• Neo4j, AllegroGraph, GraphDB
Key-value stores
What is it?
• Stores key-value pairs.
• Several variations, such as in-
memory DBs
Where is it
useful?
• Ex. Quick access of data based on
a key
Popular
DBs
• Redis, Memcache
Column stores
What is it?
• Stores data in same columns at
same place, rather than data from
same rows
Where is it
useful?
• Ex. Semi-structured data
• Useful for large data with
aggregations
Popular
DBs
• HBase, BigTable (Google)
Introduction to
A Document database
Instead of storing data in rows and columns as one
would with a relational database, MongoDB stores a
binary form of JSON documents (BSON)
Does not impose flat, rigid schemas across many
tables like Relational Databases
Features of MongoDB
Document data model with dynamic
schemas
Full, flexible index support and rich queries
Auto-Sharding for horizontal scalability
Built-in replication for high availability
Text search
Advanced security
Aggregation Framework and MapReduce
Large media storage with GridFS
How does a row look?
{
FirstName:"Jonathan",
Address:"15 Wanamassa Point
Road",
Children:[
{Name:"Michael",Age:10},
{Name:"Jennifer", Age:8},
{Name:"Samantha", Age:5},
{Name:"Elena", Age:2}
]
}
Comparison
with RDBMS
Terms and Concepts
SQL Terms/Concepts MongoDB Terms/Concepts
database database
table collection
row document or BSON document
column field
index index
table joins
embedded documents and
linking
primary key primary key
Specify any unique column or
column combination as primary
key.
In MongoDB, the primary key is
automatically set to the _id field.
aggregation (e.g. group by) aggregation framework
Common Operations - Create Table
SQL Schema Statements MongoDB Schema Statements
CREATE TABLE users (
id INT NOT NULL
AUTO_INCREMENT,
user_id Varchar(30),
age Number,
status char(1),
PRIMARY KEY (id)
)
Implicitly created on first insert
operation. The primary key _id is
automatically added if _id field is
not specified.
db.users.insert( {
user_id: "abc123",
age: 55,
status: "A"
} )
Explicitly create a collection:
db.createCollection("users")
Common Operations – Alter
Table
SQL Alter Statements MongoDB Alter Statements
ALTER TABLE users
ADD join_date DATETIME
ALTER TABLE users
DROP COLUMN join_date
Collections do not describe or enforce
the structure of its documents.
Alternatively:
db.users.update(
{ },
{ $set: { join_date: new Date() } },
{ multi: true }
)
db.users.update(
{ },
{ $unset: { join_date: "" } },
{ multi: true }
)
Common Operations - Insert
SQL Insert Statements MongoDB Insert Statements
INSERT INTO users(user_id,
age,
status)
VALUES ("bcd001",
45,
"A")
db.users.insert( {
user_id: "bcd001",
age: 45,
status: "A"
} )
Common Operations - Select
SQL Select Statements MongoDB Select Statements
SELECT user_id, status
FROM users
WHERE status = "A“
db.users.find(
{ status: "A" },
{ user_id: 1, status: 1, _id: 0 }
)
Common Operations - Update
SQL Update Statements MongoDB Update Statements
UPDATE users
SET status = "C"
WHERE age > 25
db.users.update(
{ age: { $gt: 25 } },
{ $set: { status: "C" } },
{ multi: true }
)
Common Operations - Delete
SQL Delete Statements MongoDB Delete Statements
DELETE FROM users
WHERE status = "D“
DELETE FROM users
db.users.remove( { status: "D" } )
db.users.remove( )
Case Study:
Designing A Product
Catalog
Problem Overview
Product Catalog
Designing an E-Commerce product
catalog system using MongoDB as a
storage engine
Product catalogs must have the
capacity to store many differed types
of objects with different sets of
attributes.
A Quick Look at
Relational Approaches to
this problem
Relational Data Models - 1
Concrete Table Inheritance: create a table for each product
category
CREATE TABLE `product_audio_album` (
`sku` char(8) NOT NULL,
`artist` varchar(255) DEFAULT NULL,
`genre_0` varchar(255) DEFAULT NULL,
...,
PRIMARY KEY(`sku`))
...
CREATE TABLE `product_film` (
...
Downside:
 You must create a new table for every new category of
products.
 You must explicitly tailor all queries for the exact type of
Relational Data Models - 2
Single Table Inheritance: Single table for all products, add new
columns to store data for a new product
CREATE TABLE `product` (
`sku` char(8) NOT NULL,
...
`artist` varchar(255) DEFAULT NULL,
`genre_1` varchar(255) DEFAULT NULL,
...
`title` varchar(255) DEFAULT NULL,
`rating` char(8) DEFAULT NULL,
...,
PRIMARY KEY(`sku`))
 Downside: More flexible, but at expense of space
Relational Data Models - 3
Multiple Table Inheritance
CREATE TABLE `product` (
`sku` char(8) NOT NULL,
`title` varchar(255) DEFAULT NULL,
`price`, ...
PRIMARY KEY(`sku`))
CREATE TABLE `product_audio_album` (
`sku` char(8) NOT NULL,
`genre_1` varchar(255) DEFAULT NULL,
...,
PRIMARY KEY(`sku`),
FOREIGN KEY(`sku`) REFERENCES `product`(`sku`))
...
CREATE TABLE `product_film` (
...
Downside: More flexible and saves space, but JOINs are very expensive
Relational Data Models - 4
Entity Attribute Values
Entity Attribute Value
sku_00e8da9b type Audio Album
sku_00e8da9b title A Love Supreme
sku_00e8da9b ... ...
sku_00e8da9b artist John Coltrane
sku_00e8da9b genre Jazz
sku_00e8da9b genre General
... ... ...
Downside: Totally flexible, but non-trivial queries
need large number of JOINs
Non-relational Data Model
 Use a single MongoDB collection to store
all the product data
 Dynamic schema means that each
document need not conform to the same
schema
 The document for each product only needs
to contain attributes relevant to that product.
So how does data look in
MongoDB with the non-relational
approach?
{
sku: "00e8da9b",
type: "Audio Album",
title: "A Love Supreme",
description: "by John Coltrane",
asin: "B0000A118M",
shipping: {
…
},
pricing: {
…
},
details: {
…
}
}
When to Choose MongoDB over RDBMS
2/17/2015
Best Practices for MongoDB
 NoSQL products (and among them
MongoDB) should be used to meet
specific challenges.
2/17/2015
High Write Load
 - MongoDB by default prefers high
insert rate over transaction safety.
 - Preferably low business value for
each record
 - Good examples are logs, streaming
data, bulk loads
2/17/2015
High Availability in an Unreliable
Environment
 - Setting replicaSet (set of servers that
act as Master-Slaves) is easy and fast.
 - Instant recovery (automatic) from
failures of nodes (or data-center)
2/17/2015
Growth in data size with time
 - Partitioning tables is complicated in
RDBMS
 - IF your data is going to cross a few
GB for each table, you should
consider where you want to store it
 - MongoDB provides simple sharding
mechanism to shard the data and
horizontally scale your application
2/17/2015
Location Based Service
 - Use MongoDB if you store geo-
locations and wish to perform
proximity queries or related searches
 - MongoDB geo queries are fast and
accurate
 - Several use cases of geo-locations
in production apps
2/17/2015
Large data sets with Unstable
schema
 - Your data is reasonably large then its
complicated to change your schema
 - When you work in Agile model your
product can change shape
dynamically
 - MongoDB is schema-less
2/17/2015
No Dedicated DBA!
 - Complicated operations such as
normalization, joins are avoided in
MongoDB
 - Backup, storage mechanism
provided out of the box (MMS)
{ "Scaling" : true}
Scaling: Sharding
- Scale linearly as data grows
- Add more nodes
- Choose a shard key wisely
Scaling: Replica Sets
- Make your system highly available
- Read Only Replicas for reporting, help
reduce load
- Read Consistency across Replicas
HA Architecture
More Scaling?
- Capped Collections
- Use SSDs
- More RAM
- Faster cores rather than more cores
(mongod not optimized for multi-core)
- Consider Aggregation framework for
complex reports
- Text Search Support!
Real World Case Study
2/17/2015
Real-world case study
 http://www.slideshare.net/oc666/mong
odb-user-group-billrun
 - BillRun, a next generation Open
Source billing solution that utilizes
MongoDB as its data store.
 - This billing system runs in production
in the fastest growing cellular operator
in Israel, where it processes over
500M CDRs (call data records) each
month.
2/17/2015
Schema-less design
 - enables rapid introduction of new
CDR types to the system.
 - It lets BillRun keep the data store
generic.
2/17/2015
Scale
 - BillRun production site already
manages several TB in a single table.
 - Not limited by adding new fields or
being limited by growth
2/17/2015
Rapid replicaSet
- enables meeting regulation with
easy to setup multi data center DRP
and HA solution.
2/17/2015
Sharding
 - enables linear and scale out growth
without running out of budget.
2/17/2015
Geo API
 - is being utilized to analyze users
usage and determining where to
invest in cellular infrastructure
2/17/2015
HuMongous
 With over 2,000/s CDR inserts,
MongoDB architecture is great for a
system that must support high insert
load. Yet you can guarantee
transactions with findAndModify
(which is slower) and two-phase
commit (application wise).
References and further
readings!
 - MongoDB documentation:
http://docs.mongodb.org/manual/
 - Tutorials and certificate programs:
https://education.10gen.com/
 References:
 - http://java.dzone.com/articles/when-
use-mongodb-rather-mysql
 -
http://www.mysqlperformanceblog.co
m/2013/08/01/schema-design-in-
mongodb-vs-schema-design-in-mysql/
{
Topic:"MongoDB By Example",
Presenter:"Ritesh Gupta",
Info:{
Mail:["ritesh.gupta@techvedika.com"]
Designation:"Sr Architect",
Company:"TechVedika"
Url:"www.techvedika.com"
}
}
Thank You!

Contenu connexe

Tendances

Tendances (20)

NoSQL databases - An introduction
NoSQL databases - An introductionNoSQL databases - An introduction
NoSQL databases - An introduction
 
Nosql seminar
Nosql seminarNosql seminar
Nosql seminar
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
NoSQL databases pros and cons
NoSQL databases pros and consNoSQL databases pros and cons
NoSQL databases pros and cons
 
Gcp data engineer
Gcp data engineerGcp data engineer
Gcp data engineer
 
Mongodb - NoSql Database
Mongodb - NoSql DatabaseMongodb - NoSql Database
Mongodb - NoSql Database
 
NoSql
NoSqlNoSql
NoSql
 
Key-Value NoSQL Database
Key-Value NoSQL DatabaseKey-Value NoSQL Database
Key-Value NoSQL Database
 
Couch db
Couch dbCouch db
Couch db
 
NoSQL Databases
NoSQL DatabasesNoSQL Databases
NoSQL Databases
 
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
NoSQL Databases: An Introduction and Comparison between Dynamo, MongoDB and C...
 
Dynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and ComparisonDynamo and BigTable - Review and Comparison
Dynamo and BigTable - Review and Comparison
 
NoSQL-Database-Concepts
NoSQL-Database-ConceptsNoSQL-Database-Concepts
NoSQL-Database-Concepts
 
7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth7. Key-Value Databases: In Depth
7. Key-Value Databases: In Depth
 
NOSQL Databases types and Uses
NOSQL Databases types and UsesNOSQL Databases types and Uses
NOSQL Databases types and Uses
 
Nosql databases
Nosql databasesNosql databases
Nosql databases
 
NoSQL Seminer
NoSQL SeminerNoSQL Seminer
NoSQL Seminer
 
Selecting best NoSQL
Selecting best NoSQL Selecting best NoSQL
Selecting best NoSQL
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Postgres_9.0 vs MySQL_5.5
Postgres_9.0 vs MySQL_5.5Postgres_9.0 vs MySQL_5.5
Postgres_9.0 vs MySQL_5.5
 

En vedette

Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay SinghSlash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singhslashn
 
Typhoid fever
Typhoid feverTyphoid fever
Typhoid feverIra Dora
 
Introduction to NoSQL db and mongoDB
Introduction to NoSQL db and mongoDBIntroduction to NoSQL db and mongoDB
Introduction to NoSQL db and mongoDBbackslash451
 
MongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL DatabaseMongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL DatabaseRuben Inoto Soto
 
Mongo db – document oriented database
Mongo db – document oriented databaseMongo db – document oriented database
Mongo db – document oriented databaseWojciech Sznapka
 
MongoDB - javascript for your data
MongoDB - javascript for your dataMongoDB - javascript for your data
MongoDB - javascript for your dataaaronheckmann
 
Introduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQLIntroduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQLMayur Patil
 
Introduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDBIntroduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDBHector Correa
 
MongoDB NoSQL - Developer Guide
MongoDB NoSQL - Developer GuideMongoDB NoSQL - Developer Guide
MongoDB NoSQL - Developer GuideShiv K Sah
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBJustin Smestad
 
Mongodb intro
Mongodb introMongodb intro
Mongodb introchristkv
 
MongoDB: Intro & Application for Big Data
MongoDB: Intro & Application  for Big DataMongoDB: Intro & Application  for Big Data
MongoDB: Intro & Application for Big DataTakahiro Inoue
 
Text databases and information retrieval
Text databases and information retrievalText databases and information retrieval
Text databases and information retrievalunyil96
 
MongoDB Introduction - Document Oriented Nosql Database
MongoDB Introduction - Document Oriented Nosql DatabaseMongoDB Introduction - Document Oriented Nosql Database
MongoDB Introduction - Document Oriented Nosql DatabaseSudhir Patil
 
OSCON 2012 MongoDB Tutorial
OSCON 2012 MongoDB TutorialOSCON 2012 MongoDB Tutorial
OSCON 2012 MongoDB TutorialSteven Francia
 
MongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewMongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewPierre Baillet
 

En vedette (20)

Mongodb Introduction
Mongodb IntroductionMongodb Introduction
Mongodb Introduction
 
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay SinghSlash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
Slash n: Technical Session 8 - Making Time - minute by minute - Janmejay Singh
 
Typhoid fever
Typhoid feverTyphoid fever
Typhoid fever
 
Introduction to NoSQL db and mongoDB
Introduction to NoSQL db and mongoDBIntroduction to NoSQL db and mongoDB
Introduction to NoSQL db and mongoDB
 
MongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL DatabaseMongoDB - A Document NoSQL Database
MongoDB - A Document NoSQL Database
 
Mongo db – document oriented database
Mongo db – document oriented databaseMongo db – document oriented database
Mongo db – document oriented database
 
MongoDB - javascript for your data
MongoDB - javascript for your dataMongoDB - javascript for your data
MongoDB - javascript for your data
 
Introduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQLIntroduction to MongoDB Basics from SQL to NoSQL
Introduction to MongoDB Basics from SQL to NoSQL
 
Introduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDBIntroduction to NoSQL with MongoDB
Introduction to NoSQL with MongoDB
 
MongoDB NoSQL - Developer Guide
MongoDB NoSQL - Developer GuideMongoDB NoSQL - Developer Guide
MongoDB NoSQL - Developer Guide
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MongoDB
MongoDBMongoDB
MongoDB
 
Mongodb intro
Mongodb introMongodb intro
Mongodb intro
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
MongoDB: Intro & Application for Big Data
MongoDB: Intro & Application  for Big DataMongoDB: Intro & Application  for Big Data
MongoDB: Intro & Application for Big Data
 
A Brief MongoDB Intro
A Brief MongoDB IntroA Brief MongoDB Intro
A Brief MongoDB Intro
 
Text databases and information retrieval
Text databases and information retrievalText databases and information retrieval
Text databases and information retrieval
 
MongoDB Introduction - Document Oriented Nosql Database
MongoDB Introduction - Document Oriented Nosql DatabaseMongoDB Introduction - Document Oriented Nosql Database
MongoDB Introduction - Document Oriented Nosql Database
 
OSCON 2012 MongoDB Tutorial
OSCON 2012 MongoDB TutorialOSCON 2012 MongoDB Tutorial
OSCON 2012 MongoDB Tutorial
 
MongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of viewMongoDB vs Mysql. A devops point of view
MongoDB vs Mysql. A devops point of view
 

Similaire à No SQL and MongoDB - Hyderabad Scalability Meetup

GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGuang Xu
 
MongoDB NoSQL database a deep dive -MyWhitePaper
MongoDB  NoSQL database a deep dive -MyWhitePaperMongoDB  NoSQL database a deep dive -MyWhitePaper
MongoDB NoSQL database a deep dive -MyWhitePaperRajesh Kumar
 
Mdb dn 2016_04_check_constraints
Mdb dn 2016_04_check_constraintsMdb dn 2016_04_check_constraints
Mdb dn 2016_04_check_constraintsDaniel M. Farrell
 
Architectural anti patterns_for_data_handling
Architectural anti patterns_for_data_handlingArchitectural anti patterns_for_data_handling
Architectural anti patterns_for_data_handlingGleicon Moraes
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...jaxconf
 
No SQL - MongoDB
No SQL - MongoDBNo SQL - MongoDB
No SQL - MongoDBMirza Asif
 
Oracle Database 12c - Features for Big Data
Oracle Database 12c - Features for Big DataOracle Database 12c - Features for Big Data
Oracle Database 12c - Features for Big DataAbishek V S
 
DBVersity MongoDB Online Training Presentations
DBVersity MongoDB Online Training PresentationsDBVersity MongoDB Online Training Presentations
DBVersity MongoDB Online Training PresentationsSrinivas Mutyala
 
The World of Structured Storage System
The World of Structured Storage SystemThe World of Structured Storage System
The World of Structured Storage SystemSchubert Zhang
 
Architectural anti-patterns for data handling
Architectural anti-patterns for data handlingArchitectural anti-patterns for data handling
Architectural anti-patterns for data handlingGleicon Moraes
 
Comparing sql and nosql dbs
Comparing sql and nosql dbsComparing sql and nosql dbs
Comparing sql and nosql dbsVasilios Kuznos
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLbalwinders
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBMarco Segato
 
Introduction to Sql on Hadoop
Introduction to Sql on HadoopIntroduction to Sql on Hadoop
Introduction to Sql on HadoopSamuel Yee
 
Assignment_4
Assignment_4Assignment_4
Assignment_4Kirti J
 
Nosql part1 8th December
Nosql part1 8th December Nosql part1 8th December
Nosql part1 8th December Ruru Chowdhury
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational DatabasesUdi Bauman
 

Similaire à No SQL and MongoDB - Hyderabad Scalability Meetup (20)

Mongo db
Mongo dbMongo db
Mongo db
 
GCP Data Engineer cheatsheet
GCP Data Engineer cheatsheetGCP Data Engineer cheatsheet
GCP Data Engineer cheatsheet
 
MongoDB NoSQL database a deep dive -MyWhitePaper
MongoDB  NoSQL database a deep dive -MyWhitePaperMongoDB  NoSQL database a deep dive -MyWhitePaper
MongoDB NoSQL database a deep dive -MyWhitePaper
 
Mdb dn 2016_04_check_constraints
Mdb dn 2016_04_check_constraintsMdb dn 2016_04_check_constraints
Mdb dn 2016_04_check_constraints
 
Architectural anti patterns_for_data_handling
Architectural anti patterns_for_data_handlingArchitectural anti patterns_for_data_handling
Architectural anti patterns_for_data_handling
 
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...Considerations for using NoSQL technology on your next IT project - Akmal Cha...
Considerations for using NoSQL technology on your next IT project - Akmal Cha...
 
No SQL - MongoDB
No SQL - MongoDBNo SQL - MongoDB
No SQL - MongoDB
 
Oracle Database 12c - Features for Big Data
Oracle Database 12c - Features for Big DataOracle Database 12c - Features for Big Data
Oracle Database 12c - Features for Big Data
 
DBVersity MongoDB Online Training Presentations
DBVersity MongoDB Online Training PresentationsDBVersity MongoDB Online Training Presentations
DBVersity MongoDB Online Training Presentations
 
The World of Structured Storage System
The World of Structured Storage SystemThe World of Structured Storage System
The World of Structured Storage System
 
Architectural anti-patterns for data handling
Architectural anti-patterns for data handlingArchitectural anti-patterns for data handling
Architectural anti-patterns for data handling
 
Comparing sql and nosql dbs
Comparing sql and nosql dbsComparing sql and nosql dbs
Comparing sql and nosql dbs
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
SQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDBSQL vs NoSQL, an experiment with MongoDB
SQL vs NoSQL, an experiment with MongoDB
 
Introduction to Sql on Hadoop
Introduction to Sql on HadoopIntroduction to Sql on Hadoop
Introduction to Sql on Hadoop
 
Assignment_4
Assignment_4Assignment_4
Assignment_4
 
Nosql part1 8th December
Nosql part1 8th December Nosql part1 8th December
Nosql part1 8th December
 
NOSQL
NOSQLNOSQL
NOSQL
 
Nonrelational Databases
Nonrelational DatabasesNonrelational Databases
Nonrelational Databases
 
NoSQL
NoSQLNoSQL
NoSQL
 

Plus de Hyderabad Scalability Meetup

Geeknight : Artificial Intelligence and Machine Learning
Geeknight : Artificial Intelligence and Machine LearningGeeknight : Artificial Intelligence and Machine Learning
Geeknight : Artificial Intelligence and Machine LearningHyderabad Scalability Meetup
 
Map reduce and the art of Thinking Parallel - Dr. Shailesh Kumar
Map reduce and the art of Thinking Parallel   - Dr. Shailesh KumarMap reduce and the art of Thinking Parallel   - Dr. Shailesh Kumar
Map reduce and the art of Thinking Parallel - Dr. Shailesh KumarHyderabad Scalability Meetup
 
Understanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQLUnderstanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQLHyderabad Scalability Meetup
 
Demystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep DiveDemystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep DiveHyderabad Scalability Meetup
 
Demystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep DiveDemystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep DiveHyderabad Scalability Meetup
 
Apache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability Meetup
Apache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability MeetupApache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability Meetup
Apache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability MeetupHyderabad Scalability Meetup
 

Plus de Hyderabad Scalability Meetup (15)

Serverless architectures
Serverless architecturesServerless architectures
Serverless architectures
 
GeekNight: Evolution of Programming Languages
GeekNight: Evolution of Programming LanguagesGeekNight: Evolution of Programming Languages
GeekNight: Evolution of Programming Languages
 
Geeknight : Artificial Intelligence and Machine Learning
Geeknight : Artificial Intelligence and Machine LearningGeeknight : Artificial Intelligence and Machine Learning
Geeknight : Artificial Intelligence and Machine Learning
 
Map reduce and the art of Thinking Parallel - Dr. Shailesh Kumar
Map reduce and the art of Thinking Parallel   - Dr. Shailesh KumarMap reduce and the art of Thinking Parallel   - Dr. Shailesh Kumar
Map reduce and the art of Thinking Parallel - Dr. Shailesh Kumar
 
Offline first geeknight
Offline first geeknightOffline first geeknight
Offline first geeknight
 
Understanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQLUnderstanding and building big data Architectures - NoSQL
Understanding and building big data Architectures - NoSQL
 
Turbo charging v8 engine
Turbo charging v8 engineTurbo charging v8 engine
Turbo charging v8 engine
 
Git internals
Git internalsGit internals
Git internals
 
Nlp
NlpNlp
Nlp
 
Internet of Things - GeekNight - Hyderabad
Internet of Things - GeekNight - HyderabadInternet of Things - GeekNight - Hyderabad
Internet of Things - GeekNight - Hyderabad
 
Demystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep DiveDemystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep Dive
 
Demystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep DiveDemystify Big Data, Data Science & Signal Extraction Deep Dive
Demystify Big Data, Data Science & Signal Extraction Deep Dive
 
Java 8 Lambda Expressions
Java 8 Lambda ExpressionsJava 8 Lambda Expressions
Java 8 Lambda Expressions
 
Apache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability Meetup
Apache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability MeetupApache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability Meetup
Apache Spark - Lightning Fast Cluster Computing - Hyderabad Scalability Meetup
 
Docker by demo
Docker by demoDocker by demo
Docker by demo
 

Dernier

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Dernier (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

No SQL and MongoDB - Hyderabad Scalability Meetup

  • 1.
  • 2. RDBMS: Past and Present Web Scale challenges today Data explosion in past few years Single web request may fire 10s/100s of queries! Agile development Hardware challenges - leverage low cost cloud infrastructure Introduced in 1970s Solved prevalent data storage issues
  • 4. CAP Theorem - It is impossible for a distributed computer system to simultaneously provide all three at the same time The Need A C P MongoDB, Redis, Hbase, BigTable Cassandra, SimpleDB, DynamoRDBMS
  • 7. Document Database What is it? • Documents are independent units • Can store semi-structured Data with ease Where is it useful? • Ex. Product information in an ecommerce site. Popular DBs • MongoDB, CouchDB
  • 8. 8 Graph stores What is it? • Based on graph theory • Employ nodes, properties, and edges Where is it useful? • Ex. Social graphs Popular DBs • Neo4j, AllegroGraph, GraphDB
  • 9. Key-value stores What is it? • Stores key-value pairs. • Several variations, such as in- memory DBs Where is it useful? • Ex. Quick access of data based on a key Popular DBs • Redis, Memcache
  • 10. Column stores What is it? • Stores data in same columns at same place, rather than data from same rows Where is it useful? • Ex. Semi-structured data • Useful for large data with aggregations Popular DBs • HBase, BigTable (Google)
  • 12. A Document database Instead of storing data in rows and columns as one would with a relational database, MongoDB stores a binary form of JSON documents (BSON) Does not impose flat, rigid schemas across many tables like Relational Databases
  • 13. Features of MongoDB Document data model with dynamic schemas Full, flexible index support and rich queries Auto-Sharding for horizontal scalability Built-in replication for high availability Text search Advanced security Aggregation Framework and MapReduce Large media storage with GridFS
  • 14. How does a row look? { FirstName:"Jonathan", Address:"15 Wanamassa Point Road", Children:[ {Name:"Michael",Age:10}, {Name:"Jennifer", Age:8}, {Name:"Samantha", Age:5}, {Name:"Elena", Age:2} ] }
  • 16. Terms and Concepts SQL Terms/Concepts MongoDB Terms/Concepts database database table collection row document or BSON document column field index index table joins embedded documents and linking primary key primary key Specify any unique column or column combination as primary key. In MongoDB, the primary key is automatically set to the _id field. aggregation (e.g. group by) aggregation framework
  • 17. Common Operations - Create Table SQL Schema Statements MongoDB Schema Statements CREATE TABLE users ( id INT NOT NULL AUTO_INCREMENT, user_id Varchar(30), age Number, status char(1), PRIMARY KEY (id) ) Implicitly created on first insert operation. The primary key _id is automatically added if _id field is not specified. db.users.insert( { user_id: "abc123", age: 55, status: "A" } ) Explicitly create a collection: db.createCollection("users")
  • 18. Common Operations – Alter Table SQL Alter Statements MongoDB Alter Statements ALTER TABLE users ADD join_date DATETIME ALTER TABLE users DROP COLUMN join_date Collections do not describe or enforce the structure of its documents. Alternatively: db.users.update( { }, { $set: { join_date: new Date() } }, { multi: true } ) db.users.update( { }, { $unset: { join_date: "" } }, { multi: true } )
  • 19. Common Operations - Insert SQL Insert Statements MongoDB Insert Statements INSERT INTO users(user_id, age, status) VALUES ("bcd001", 45, "A") db.users.insert( { user_id: "bcd001", age: 45, status: "A" } )
  • 20. Common Operations - Select SQL Select Statements MongoDB Select Statements SELECT user_id, status FROM users WHERE status = "A“ db.users.find( { status: "A" }, { user_id: 1, status: 1, _id: 0 } )
  • 21. Common Operations - Update SQL Update Statements MongoDB Update Statements UPDATE users SET status = "C" WHERE age > 25 db.users.update( { age: { $gt: 25 } }, { $set: { status: "C" } }, { multi: true } )
  • 22. Common Operations - Delete SQL Delete Statements MongoDB Delete Statements DELETE FROM users WHERE status = "D“ DELETE FROM users db.users.remove( { status: "D" } ) db.users.remove( )
  • 23. Case Study: Designing A Product Catalog
  • 24. Problem Overview Product Catalog Designing an E-Commerce product catalog system using MongoDB as a storage engine Product catalogs must have the capacity to store many differed types of objects with different sets of attributes.
  • 25. A Quick Look at Relational Approaches to this problem
  • 26. Relational Data Models - 1 Concrete Table Inheritance: create a table for each product category CREATE TABLE `product_audio_album` ( `sku` char(8) NOT NULL, `artist` varchar(255) DEFAULT NULL, `genre_0` varchar(255) DEFAULT NULL, ..., PRIMARY KEY(`sku`)) ... CREATE TABLE `product_film` ( ... Downside:  You must create a new table for every new category of products.  You must explicitly tailor all queries for the exact type of
  • 27. Relational Data Models - 2 Single Table Inheritance: Single table for all products, add new columns to store data for a new product CREATE TABLE `product` ( `sku` char(8) NOT NULL, ... `artist` varchar(255) DEFAULT NULL, `genre_1` varchar(255) DEFAULT NULL, ... `title` varchar(255) DEFAULT NULL, `rating` char(8) DEFAULT NULL, ..., PRIMARY KEY(`sku`))  Downside: More flexible, but at expense of space
  • 28. Relational Data Models - 3 Multiple Table Inheritance CREATE TABLE `product` ( `sku` char(8) NOT NULL, `title` varchar(255) DEFAULT NULL, `price`, ... PRIMARY KEY(`sku`)) CREATE TABLE `product_audio_album` ( `sku` char(8) NOT NULL, `genre_1` varchar(255) DEFAULT NULL, ..., PRIMARY KEY(`sku`), FOREIGN KEY(`sku`) REFERENCES `product`(`sku`)) ... CREATE TABLE `product_film` ( ... Downside: More flexible and saves space, but JOINs are very expensive
  • 29. Relational Data Models - 4 Entity Attribute Values Entity Attribute Value sku_00e8da9b type Audio Album sku_00e8da9b title A Love Supreme sku_00e8da9b ... ... sku_00e8da9b artist John Coltrane sku_00e8da9b genre Jazz sku_00e8da9b genre General ... ... ... Downside: Totally flexible, but non-trivial queries need large number of JOINs
  • 30. Non-relational Data Model  Use a single MongoDB collection to store all the product data  Dynamic schema means that each document need not conform to the same schema  The document for each product only needs to contain attributes relevant to that product.
  • 31. So how does data look in MongoDB with the non-relational approach?
  • 32. { sku: "00e8da9b", type: "Audio Album", title: "A Love Supreme", description: "by John Coltrane", asin: "B0000A118M", shipping: { … }, pricing: { … }, details: { … } }
  • 33. When to Choose MongoDB over RDBMS
  • 34. 2/17/2015 Best Practices for MongoDB  NoSQL products (and among them MongoDB) should be used to meet specific challenges.
  • 35. 2/17/2015 High Write Load  - MongoDB by default prefers high insert rate over transaction safety.  - Preferably low business value for each record  - Good examples are logs, streaming data, bulk loads
  • 36. 2/17/2015 High Availability in an Unreliable Environment  - Setting replicaSet (set of servers that act as Master-Slaves) is easy and fast.  - Instant recovery (automatic) from failures of nodes (or data-center)
  • 37. 2/17/2015 Growth in data size with time  - Partitioning tables is complicated in RDBMS  - IF your data is going to cross a few GB for each table, you should consider where you want to store it  - MongoDB provides simple sharding mechanism to shard the data and horizontally scale your application
  • 38. 2/17/2015 Location Based Service  - Use MongoDB if you store geo- locations and wish to perform proximity queries or related searches  - MongoDB geo queries are fast and accurate  - Several use cases of geo-locations in production apps
  • 39. 2/17/2015 Large data sets with Unstable schema  - Your data is reasonably large then its complicated to change your schema  - When you work in Agile model your product can change shape dynamically  - MongoDB is schema-less
  • 40. 2/17/2015 No Dedicated DBA!  - Complicated operations such as normalization, joins are avoided in MongoDB  - Backup, storage mechanism provided out of the box (MMS)
  • 41. { "Scaling" : true}
  • 42. Scaling: Sharding - Scale linearly as data grows - Add more nodes - Choose a shard key wisely
  • 43. Scaling: Replica Sets - Make your system highly available - Read Only Replicas for reporting, help reduce load - Read Consistency across Replicas
  • 45. More Scaling? - Capped Collections - Use SSDs - More RAM - Faster cores rather than more cores (mongod not optimized for multi-core) - Consider Aggregation framework for complex reports - Text Search Support!
  • 47. 2/17/2015 Real-world case study  http://www.slideshare.net/oc666/mong odb-user-group-billrun  - BillRun, a next generation Open Source billing solution that utilizes MongoDB as its data store.  - This billing system runs in production in the fastest growing cellular operator in Israel, where it processes over 500M CDRs (call data records) each month.
  • 48. 2/17/2015 Schema-less design  - enables rapid introduction of new CDR types to the system.  - It lets BillRun keep the data store generic.
  • 49. 2/17/2015 Scale  - BillRun production site already manages several TB in a single table.  - Not limited by adding new fields or being limited by growth
  • 50. 2/17/2015 Rapid replicaSet - enables meeting regulation with easy to setup multi data center DRP and HA solution.
  • 51. 2/17/2015 Sharding  - enables linear and scale out growth without running out of budget.
  • 52. 2/17/2015 Geo API  - is being utilized to analyze users usage and determining where to invest in cellular infrastructure
  • 53. 2/17/2015 HuMongous  With over 2,000/s CDR inserts, MongoDB architecture is great for a system that must support high insert load. Yet you can guarantee transactions with findAndModify (which is slower) and two-phase commit (application wise).
  • 54. References and further readings!  - MongoDB documentation: http://docs.mongodb.org/manual/  - Tutorials and certificate programs: https://education.10gen.com/  References:  - http://java.dzone.com/articles/when- use-mongodb-rather-mysql  - http://www.mysqlperformanceblog.co m/2013/08/01/schema-design-in- mongodb-vs-schema-design-in-mysql/
  • 55. { Topic:"MongoDB By Example", Presenter:"Ritesh Gupta", Info:{ Mail:["ritesh.gupta@techvedika.com"] Designation:"Sr Architect", Company:"TechVedika" Url:"www.techvedika.com" } }

Notes de l'éditeur

  1. Ingredients of large Data storage and retrieval Consistency: All nodes see the same data at the same time Availability: A guarantee that every request receives a response about whether it was successful or failed Partition tolerance: The system continues to operate despite arbitrary message loss or failure of part of the system Manual Sharding No native ability Developers deploy multiple instances across machines Application code custom written to handle: resource failures joins across these systems Distributed Cache Custom products to improve caching Works well with read operations. Not so well for write
  2. Dynamic Schema RDBMS: Schema driven development Changes to schema cause significant downtime NoSQL: App (features) drive the Schema Auto Sharding Scale horizontally rather than vertically Automatic replication Integrated Caching