SlideShare uma empresa Scribd logo
1 de 53
NoSQL & MySQL: The Best of
Both Worlds
Andrew Morgan (@andrewmorgan)
www.clusterdb.com
Principal MySQL Product Manager
11th June 2014
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.2
Safe Harbour Statement
The following is intended to outline our general product direction. It is
intended for information purposes only, and may not be incorporated
into any contract. It is not a commitment to deliver any material, code,
or functionality, and should not be relied upon in making purchasing
decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole
discretion of Oracle.
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.3
MySQL Customers
World’s Most Popular Open Source Database
WebSaaS, Hosting
Enterprise OEM / ISV’s
Telecom
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.4
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.5
Session Agenda
 NoSQL – What are people looking for?
 RDBMS – What advantages do they still have?
 How MySQL Delivers the Best of Both Worlds
– MySQL Cluster
 NoSQL attributes: Scale-out, performance, ease-of-use, schema
flexibility, on-line operations
 NoSQL APIs
– Key-Value store access to InnoDB (Memcached)
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.6
Types of NoSQL stores
Key-Value
• Cassandra
• Memcached
• BigTable
• Hadoop
• Voldermort
Document
• MongoDB
• CouchDB
Graph
• Neo4J
• FlockDB
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.7
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.8
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.9
Graph Database
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.10
What NoSQL must deliver
 Massive scalability
– No application-level sharding
 Performance
 High Availability/Fault Tolerance
 Ease of use
– Simple operations/administration
– Simple APIs
– Quickly evolve application &
schema
Scalability
Performance
HA
Ease of use
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.11
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.12
Still a role for the SQL (RDBMS)?
NoSQL
Simple access patterns
Compromise on consistency
for performance
Ad-hoc data format
Simple operation
SQL
Complex queries with joins
ACID transactions
Well defined schemas
Rich set of tools
 No best single solution
fits all
 Mix and match
Scalability
Performance
HA
Ease of use
SQL/Joins
ACID
Transactions
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.13
The Temptation to Jettison Relational Model
 Relational Model:
– Data stored in multiple
tables
– Many lookups to retrieve a
user’s timeline
– Is it worth the effort in
setting up this complex
data model?
 Simpler just to store as one
document?
The allure of document stores
Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy
user
friend
post
comment
like
liker
commenter
many
many
many
one
one
many
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.14
The Temptation to Jettison Relational Model
 Document Model:
– Entire timeline in a single
document (row)
– Single lookup to retrieve the
user’s timeline
– Brilliantly efficient model when
the document truly contains
self-contained information
 Like a real-world document!
The allure of document stores
Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy
{name: ‘Joe’,
url: ‘…’
stream:[
{friend:{
name: ‘Jane’,
posts:[{content: ‘…’,
comments:[
{comment: ‘…’,
commenter: ‘Joe’},
{…}
],
likes: [‘Joe’, ‘Fred’, ‘Billy’]
},
{…},{…},…
]
}, {…},{…},…
}
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.15
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.16
The Temptation to Jettison Relational Model
 These are all people who
have their own data that
users will want to view or
click through:
– Name
– url
– Timeline
 Easy to represent with FKs
in a relational model
But when the data isn’t self contained…
Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy
user
friend
post
comment
like
liker
commenter
many
many
many
one
one
many
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.17
The Temptation to Jettison Relational Model
 Do I store all data for all
friends and likers again at
every point they appear in the
document?
– Massive amount of repeated
data
 Wasted space
 Needs to be kept in sync (and
you don’t have transactions to
provide consistency
The allure of document stores
Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy
{name: ‘Joe’,
url: ‘…’
stream:[
{friend:{
name: ‘Jane’,
posts:[{content: ‘…’,
comments:[
{comment: ‘…’,
commenter: ‘Joe’},
{…}
],
likes: [‘Joe’, ‘Fred’, ‘Billy’]
},
{…},{…},…
]
}, {…},{…},…
}
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.18
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.19
The Temptation to Jettison Relational Model
The allure of document stores
Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy
{name: 83746251,
url: ‘…’
stream:[
{friend:{
name: 9384726153,
posts:[{content: ‘…’,
comments:[
{comment: ‘…’,
commenter: 83746251},
{…}
],
likes: [83746251, 750730283,
2938493820]
},
{…},{…},…
]
}, {…},{…},…
}
 The reality is that the
developer will store the user-
ids instead
 Developer is responsible for
implementing ‘joins’ in the
application
– e.g. scanning all timelines for
where a user made a
comment or liked a post
 No transactions to ensure
consistency between
documents
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.20
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.21
MySQL Cluster: Overview
• Auto-Sharding, Multi-Master
• ACID Compliant, OLTP + Real-Time Analytics
HIGH SCALE,
READS + WRITES
• Shared nothing, no Single Point of Failure
• Self Healing + On-Line Operations
99.999%
AVAILABILITY
• Open Source + Commercial Editions
• Commodity hardware + Management, Monitoring Tools
LOW TCO
• Key/Value + Complex, Relational Queries
• SQL + Memcached + JavaScript + Java + JPA + HTTP/REST & C++
SQL + NoSQL
• In-Memory Optimization + Disk-Data
• Predictable Low-Latency, Bounded Access Time
REAL-TIME
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.22
Who’s Using MySQL Cluster?
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.23
MySQL Cluster Architecture
MySQL Cluster Data Nodes
Data Layer
Clients
Application Layer
Management
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.24
MySQL Cluster Architecture
MySQL Cluster Data Nodes
Data Layer
Clients
Application Layer
Management
Management
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.25
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.26
MySQL Cluster Architecture
MySQL Cluster Data Nodes
Data Layer
Application Layer
Management
Management
Clients
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.27
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.28
On-line Operations
 Scale the cluster (add & remove nodes on-line)
 Repartition tables
 Upgrade / patch servers & OS
 Upgrade / patch MySQL Cluster
 Back-Up
 Evolve the schema on-line, in real-time
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.29
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.30
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.31
Scale-Out Reads & Writes on Commodity Hardware
 8 x Commodity Intel Servers
– 2 x 6-core processors 2.93GHz
– x5670 processors (24 threads)
– 48GB RAM
 Infiniband networking
 flexAsynch benchmark (NDB API)
0
200
400
600
800
1,000
1,200
2 4 8
Millions
Number of Data Nodes
SELECT Queries per Minute
0
20
40
60
80
100
120
4 8
Millions
Number of Data Nodes
UPDATE Queries per Minute
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.32
JOIN Performance
33K rows over 11
tables
Must Analyze tables
for best results
mysql> ANALYZE TABLE <tab-name>;
0
10
20
30
40
50
60
70
80
90
100
MySQL Cluster 7.1 MySQL Cluster 7.2
Query Execution Time Seconds
Scalability a
Performance a
HA a
Ease of use
SQL/Joins a
ACID
Transactions
a
70x
More
performance
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.33
MySQL Cluster 7.4
 Performance gain over 7.3
– 47% (Read-Only)
– 38% (Read-Write)
Better performance and operational simplicity
labs.mysql.com
 Faster node restarts
– Recovering nodes rejoin the cluster
faster
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.34
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.35
Creating & running your first Cluster
The traditional way (pre-MCM & Auto-Installer)
Download &
Extract
•edelivery.oracle.com
•www.mysql.com
•dev.mysql.com
Configure
•Cluster-wide
“config.ini”
•Per-mysqld “my.cnf”
Start processes
•Management Nodes
•Data Nodes
•MySQL Servers
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.36
Scalability a
Performance a
HA a
Ease of use a
SQL/Joins a
ACID
Transactions
a
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.37
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.38
MySQL Cluster 7.3: Auto-Installer
 Fast configuration
 Auto-discovery
 Workload optimized
 Repeatable best
practices
Specify
Workload
Auto-
Discover
Define
TopologyDeploy
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.39
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.40
MySQL Cluster Manager
1. Download MCM/Cluster package from edelivery.oracle.com:
2. Unzip
3. Run agent, define, create & start Cluster!
$> binmcmd --bootstrap
MySQL Cluster Manager 1.1.2 started
Connect to MySQL Cluster Manager by running "D:AndrewDocumentsMySQLmcmbinmcm" -a NOVA:1862
Configuring default cluster 'mycluster'...
Starting default cluster 'mycluster'...
Cluster 'mycluster' started successfully
ndb_mgmd NOVA:1186
ndbd NOVA
ndbd NOVA
mysqld NOVA:3306
mysqld NOVA:3307
ndbapi *
Connect to the database by running "D:AndrewDocumentsMySQLmcmclusterbinmysql" -h NOVA -P 3306 -u root
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.41
MCM: Upgrade Cluster
mysql> upgrade cluster
--package=7.3 mycluster;
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.42
Scalability a
Performance a
HA a
Ease of use a
SQL/Joins a
ACID
Transactions
a
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.43
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.44
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.45
NoSQL Access to MySQL Cluster data
ClusterJ
MySQL
JDBC
Apps
JPA
JNI
Python Ruby
ClusterJPA
Apps Apps Apps Apps Apps
Node.js
JS
Apps
mod-ndb
Apache
Apps
ndb-eng
Memcached
Apps Apps
NDB API (C++)
MySQL Cluster Data Nodes
Apps
PHP PERL
Apps
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.46
Schema-Free apps
 Rapid application evolution
– New types of data constantly
added
– No time to get schema
extended
– Missing skills to extend
schema
– Initially roll out to just a few
users
– Constantly adding to live
system
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.47
Cluster & Memcached – Schema-Free
<town:maidenhead,SL6>
key value
<town:maidenhead,SL6>
key value
Key Value
town:maidenhead SL6
generic table
Application view
SQL view
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.48
Cluster & Memcached - Configured Schema
<town:maidenhead,SL6>
prefix key value
<town:maidenhead,SL6>
key value
Prefix Table Key-col Val-col policy
town: map.zip town code cluste
r
Config tables
town ... code ...
maidenhead ... SL6 ...
map.zip
Application view
SQL view
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.49
MySQL 5.6 Memcached with InnoDB
0
10000
20000
30000
40000
50000
60000
70000
80000
8 32 128 512
TPS
Client Connections
MySQL 5.6: NoSQL
Benchmarking
Memcach
ed API
SQL
Clients and Applications
MySQL Server
Memcached Plug-in
innodb_
memcached
local cache
(optional)
Handler API InnoDB API
InnoDB Storage Engine
mysqld process
SQL Memcached Protocol
Up to 9x Higher “SET / INSERT” Throughput
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.50
MySQL Cluster 7.3: Node.js NoSQL API
 Native JavaScript access to MySQL Cluster
– End-to-End JavaScript: browser to the app &
DB
– Storing and retrieving JavaScript objects
directly in MySQL Cluster
– Eliminate SQL transformation
 Implemented as a module for node.js
– Integrates Cluster API library within the web app
 Couple high performance, distributed apps,
with high performance distributed database
 Optionally routes through MySQL Server
V8 JavaScript Engine
MySQL Cluster Node.js Module
MySQL Cluster Data Nodes
Clients
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.51
MySQL Cluster NoSQL API for Node.js & FKs
 FKs enforced on all APIs:
{ message: 'Error',
sqlstate: '23000',
ndb_error: null,
cause:
{ message: 'Foreign key constraint violated: No parent row found
[255]',
sqlstate: '23000',
ndb_error:
{ message: 'Foreign key constraint violated: No parent row found',
code: 255,
classification: 'ConstraintViolation',
handler_error_code: 151,
status: 'PermanentError' },
cause: null } }
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.52
Next Steps
Learn More
• www.mysql.com/cluster
• Authentic MySQL Curriculum:
http://oracle.com/education/mysql
Try it Out
• dev.mysql.com/downloads/cluster/
Let us know what you think
• clusterdb.com
• @clusterdb
• forums.mysql.com/list.php?25
Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.53

Mais conteúdo relacionado

Mais procurados

Data persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdbData persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdbDimgba Kalu
 
Data Management 2: Conquering Data Proliferation
Data Management 2: Conquering Data ProliferationData Management 2: Conquering Data Proliferation
Data Management 2: Conquering Data ProliferationMongoDB
 
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD WorkflowHands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD WorkflowTreasure Data, Inc.
 
Webinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleWebinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleMongoDB
 
Hermes: Free the Data! Distributed Computing with MongoDB
Hermes: Free the Data! Distributed Computing with MongoDBHermes: Free the Data! Distributed Computing with MongoDB
Hermes: Free the Data! Distributed Computing with MongoDBMongoDB
 
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...Codemotion
 
Implementing and Visualizing Clickstream data with MongoDB
Implementing and Visualizing Clickstream data with MongoDBImplementing and Visualizing Clickstream data with MongoDB
Implementing and Visualizing Clickstream data with MongoDBMongoDB
 
MySQL without the SQL -- Cascadia PHP
MySQL without the SQL -- Cascadia PHPMySQL without the SQL -- Cascadia PHP
MySQL without the SQL -- Cascadia PHPDave Stokes
 
What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!MongoDB
 
Database Trends for Modern Applications: Why the Database You Choose Matters
Database Trends for Modern Applications: Why the Database You Choose Matters Database Trends for Modern Applications: Why the Database You Choose Matters
Database Trends for Modern Applications: Why the Database You Choose Matters MongoDB
 
Galaxy
GalaxyGalaxy
Galaxybosc
 
State of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAMState of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAMNeo4j
 
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...MongoDB
 

Mais procurados (20)

Data persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdbData persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdb
 
Data Management 2: Conquering Data Proliferation
Data Management 2: Conquering Data ProliferationData Management 2: Conquering Data Proliferation
Data Management 2: Conquering Data Proliferation
 
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD WorkflowHands-On: Managing Slowly Changing Dimensions Using TD Workflow
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
 
Couch db
Couch dbCouch db
Couch db
 
CouchDB
CouchDBCouchDB
CouchDB
 
Webinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and ScaleWebinar: Choosing the Right Shard Key for High Performance and Scale
Webinar: Choosing the Right Shard Key for High Performance and Scale
 
Hermes: Free the Data! Distributed Computing with MongoDB
Hermes: Free the Data! Distributed Computing with MongoDBHermes: Free the Data! Distributed Computing with MongoDB
Hermes: Free the Data! Distributed Computing with MongoDB
 
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
Graph databases and the Panama Papers - Stefan Armbruster - Codemotion Milan ...
 
Woa. Reloaded
Woa. ReloadedWoa. Reloaded
Woa. Reloaded
 
Implementing and Visualizing Clickstream data with MongoDB
Implementing and Visualizing Clickstream data with MongoDBImplementing and Visualizing Clickstream data with MongoDB
Implementing and Visualizing Clickstream data with MongoDB
 
Intro To Couch Db
Intro To Couch DbIntro To Couch Db
Intro To Couch Db
 
MySQL without the SQL -- Cascadia PHP
MySQL without the SQL -- Cascadia PHPMySQL without the SQL -- Cascadia PHP
MySQL without the SQL -- Cascadia PHP
 
What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!What's the Scoop on Hadoop? How It Works and How to WORK IT!
What's the Scoop on Hadoop? How It Works and How to WORK IT!
 
Azure cosmosdb
Azure cosmosdbAzure cosmosdb
Azure cosmosdb
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
Database Trends for Modern Applications: Why the Database You Choose Matters
Database Trends for Modern Applications: Why the Database You Choose Matters Database Trends for Modern Applications: Why the Database You Choose Matters
Database Trends for Modern Applications: Why the Database You Choose Matters
 
Connection Pooling
Connection PoolingConnection Pooling
Connection Pooling
 
Galaxy
GalaxyGalaxy
Galaxy
 
State of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAMState of Florida Neo4j Graph Briefing - Cyber IAM
State of Florida Neo4j Graph Briefing - Cyber IAM
 
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
MongoDB World 2019: Finding the Right MongoDB Atlas Cluster Size: Does This I...
 

Semelhante a OUG Scotland 2014 - NoSQL and MySQL - The best of both worlds

MySQL Web Reference Architecture
MySQL Web Reference Architecture MySQL Web Reference Architecture
MySQL Web Reference Architecture Ricky Setyawan
 
20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech UpdatesRyusuke Kajiyama
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesTarique Saleem
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL SupportMysql User Camp
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLAndrew Morgan
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014Sanjay Manwani
 
MySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIMySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIRui Quelhas
 
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)Andrew Morgan
 
RMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New FeaturesRMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New FeaturesDave Stokes
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL Brasil
 
Solution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataSolution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataInfiniteGraph
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptxIvan Ma
 
Oracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewOracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewPaulo Fagundes
 
Whats new in Oracle Database 12c release 12.1.0.2
Whats new in Oracle Database 12c release 12.1.0.2Whats new in Oracle Database 12c release 12.1.0.2
Whats new in Oracle Database 12c release 12.1.0.2Connor McDonald
 
New data dictionary an internal server api that matters
New data dictionary an internal server api that mattersNew data dictionary an internal server api that matters
New data dictionary an internal server api that mattersAlexander Nozdrin
 
Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster Fran Navarro
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & designMark Swarbrick
 
A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014Anuj Sahni
 

Semelhante a OUG Scotland 2014 - NoSQL and MySQL - The best of both worlds (20)

MySQL Web Reference Architecture
MySQL Web Reference Architecture MySQL Web Reference Architecture
MySQL Web Reference Architecture
 
20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates
 
Mysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New FeaturesMysql User Camp : 20th June - Mysql New Features
Mysql User Camp : 20th June - Mysql New Features
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQLNoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
NoSQL and SQL - Why Choose? Enjoy the best of both worlds with MySQL
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014
 
MySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPIMySQL Connector/Node.js and the X DevAPI
MySQL Connector/Node.js and the X DevAPI
 
MySQL Quick Dive
MySQL Quick DiveMySQL Quick Dive
MySQL Quick Dive
 
NoSQL and MySQL
NoSQL and MySQLNoSQL and MySQL
NoSQL and MySQL
 
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
MySQL Cluster - Latest Developments (up to and including MySQL Cluster 7.4)
 
RMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New FeaturesRMOUG MySQL 5.7 New Features
RMOUG MySQL 5.7 New Features
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
 
Solution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big DataSolution Use Case Demo: The Power of Relationships in Your Big Data
Solution Use Case Demo: The Power of Relationships in Your Big Data
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx
 
Oracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overviewOracle NoSQL Database release 3.0 overview
Oracle NoSQL Database release 3.0 overview
 
Whats new in Oracle Database 12c release 12.1.0.2
Whats new in Oracle Database 12c release 12.1.0.2Whats new in Oracle Database 12c release 12.1.0.2
Whats new in Oracle Database 12c release 12.1.0.2
 
New data dictionary an internal server api that matters
New data dictionary an internal server api that mattersNew data dictionary an internal server api that matters
New data dictionary an internal server api that matters
 
Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster Simplify IT: Oracle SuperCluster
Simplify IT: Oracle SuperCluster
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & design
 
A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014
 

Mais de Andrew Morgan

Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Andrew Morgan
 
Data Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAData Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAAndrew Morgan
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationAndrew Morgan
 
PistonHead's use of MongoDB for Analytics
PistonHead's use of MongoDB for AnalyticsPistonHead's use of MongoDB for Analytics
PistonHead's use of MongoDB for AnalyticsAndrew Morgan
 
What's new in MySQL Cluster 7.4 webinar charts
What's new in MySQL Cluster 7.4 webinar chartsWhat's new in MySQL Cluster 7.4 webinar charts
What's new in MySQL Cluster 7.4 webinar chartsAndrew Morgan
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarAndrew Morgan
 
FOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsFOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsAndrew Morgan
 
MySQL Replication: What’s New in MySQL 5.7 and Beyond
MySQL Replication: What’s New in MySQL 5.7 and BeyondMySQL Replication: What’s New in MySQL 5.7 and Beyond
MySQL Replication: What’s New in MySQL 5.7 and BeyondAndrew Morgan
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013Andrew Morgan
 
NoSQL and SQL - blending the best of both worlds
NoSQL and SQL - blending the best of both worldsNoSQL and SQL - blending the best of both worlds
NoSQL and SQL - blending the best of both worldsAndrew Morgan
 
Mysql cluster introduction
Mysql cluster introductionMysql cluster introduction
Mysql cluster introductionAndrew Morgan
 
Developing high-throughput services with no sql ap-is to innodb and mysql clu...
Developing high-throughput services with no sql ap-is to innodb and mysql clu...Developing high-throughput services with no sql ap-is to innodb and mysql clu...
Developing high-throughput services with no sql ap-is to innodb and mysql clu...Andrew Morgan
 

Mais de Andrew Morgan (13)

MongoDB 3.4 webinar
MongoDB 3.4 webinarMongoDB 3.4 webinar
MongoDB 3.4 webinar
 
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
Powering Microservices with MongoDB, Docker, Kubernetes & Kafka – MongoDB Eur...
 
Data Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEAData Streaming with Apache Kafka & MongoDB - EMEA
Data Streaming with Apache Kafka & MongoDB - EMEA
 
The rise of microservices - containers and orchestration
The rise of microservices - containers and orchestrationThe rise of microservices - containers and orchestration
The rise of microservices - containers and orchestration
 
PistonHead's use of MongoDB for Analytics
PistonHead's use of MongoDB for AnalyticsPistonHead's use of MongoDB for Analytics
PistonHead's use of MongoDB for Analytics
 
What's new in MySQL Cluster 7.4 webinar charts
What's new in MySQL Cluster 7.4 webinar chartsWhat's new in MySQL Cluster 7.4 webinar charts
What's new in MySQL Cluster 7.4 webinar charts
 
MySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinarMySQL High Availability Solutions - Feb 2015 webinar
MySQL High Availability Solutions - Feb 2015 webinar
 
FOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worldsFOSDEM 2015 - NoSQL and SQL the best of both worlds
FOSDEM 2015 - NoSQL and SQL the best of both worlds
 
MySQL Replication: What’s New in MySQL 5.7 and Beyond
MySQL Replication: What’s New in MySQL 5.7 and BeyondMySQL Replication: What’s New in MySQL 5.7 and Beyond
MySQL Replication: What’s New in MySQL 5.7 and Beyond
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
 
NoSQL and SQL - blending the best of both worlds
NoSQL and SQL - blending the best of both worldsNoSQL and SQL - blending the best of both worlds
NoSQL and SQL - blending the best of both worlds
 
Mysql cluster introduction
Mysql cluster introductionMysql cluster introduction
Mysql cluster introduction
 
Developing high-throughput services with no sql ap-is to innodb and mysql clu...
Developing high-throughput services with no sql ap-is to innodb and mysql clu...Developing high-throughput services with no sql ap-is to innodb and mysql clu...
Developing high-throughput services with no sql ap-is to innodb and mysql clu...
 

Último

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 

Último (20)

A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 

OUG Scotland 2014 - NoSQL and MySQL - The best of both worlds

  • 1. NoSQL & MySQL: The Best of Both Worlds Andrew Morgan (@andrewmorgan) www.clusterdb.com Principal MySQL Product Manager 11th June 2014
  • 2. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.2 Safe Harbour Statement The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle.
  • 3. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.3 MySQL Customers World’s Most Popular Open Source Database WebSaaS, Hosting Enterprise OEM / ISV’s Telecom
  • 4. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.4
  • 5. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.5 Session Agenda  NoSQL – What are people looking for?  RDBMS – What advantages do they still have?  How MySQL Delivers the Best of Both Worlds – MySQL Cluster  NoSQL attributes: Scale-out, performance, ease-of-use, schema flexibility, on-line operations  NoSQL APIs – Key-Value store access to InnoDB (Memcached)
  • 6. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.6 Types of NoSQL stores Key-Value • Cassandra • Memcached • BigTable • Hadoop • Voldermort Document • MongoDB • CouchDB Graph • Neo4J • FlockDB
  • 7. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.7
  • 8. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.8
  • 9. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.9 Graph Database
  • 10. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.10 What NoSQL must deliver  Massive scalability – No application-level sharding  Performance  High Availability/Fault Tolerance  Ease of use – Simple operations/administration – Simple APIs – Quickly evolve application & schema Scalability Performance HA Ease of use
  • 11. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.11
  • 12. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.12 Still a role for the SQL (RDBMS)? NoSQL Simple access patterns Compromise on consistency for performance Ad-hoc data format Simple operation SQL Complex queries with joins ACID transactions Well defined schemas Rich set of tools  No best single solution fits all  Mix and match Scalability Performance HA Ease of use SQL/Joins ACID Transactions
  • 13. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.13 The Temptation to Jettison Relational Model  Relational Model: – Data stored in multiple tables – Many lookups to retrieve a user’s timeline – Is it worth the effort in setting up this complex data model?  Simpler just to store as one document? The allure of document stores Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy user friend post comment like liker commenter many many many one one many
  • 14. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.14 The Temptation to Jettison Relational Model  Document Model: – Entire timeline in a single document (row) – Single lookup to retrieve the user’s timeline – Brilliantly efficient model when the document truly contains self-contained information  Like a real-world document! The allure of document stores Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy {name: ‘Joe’, url: ‘…’ stream:[ {friend:{ name: ‘Jane’, posts:[{content: ‘…’, comments:[ {comment: ‘…’, commenter: ‘Joe’}, {…} ], likes: [‘Joe’, ‘Fred’, ‘Billy’] }, {…},{…},… ] }, {…},{…},… }
  • 15. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.15
  • 16. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.16 The Temptation to Jettison Relational Model  These are all people who have their own data that users will want to view or click through: – Name – url – Timeline  Easy to represent with FKs in a relational model But when the data isn’t self contained… Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy user friend post comment like liker commenter many many many one one many
  • 17. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.17 The Temptation to Jettison Relational Model  Do I store all data for all friends and likers again at every point they appear in the document? – Massive amount of repeated data  Wasted space  Needs to be kept in sync (and you don’t have transactions to provide consistency The allure of document stores Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy {name: ‘Joe’, url: ‘…’ stream:[ {friend:{ name: ‘Jane’, posts:[{content: ‘…’, comments:[ {comment: ‘…’, commenter: ‘Joe’}, {…} ], likes: [‘Joe’, ‘Fred’, ‘Billy’] }, {…},{…},… ] }, {…},{…},… }
  • 18. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.18
  • 19. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.19 The Temptation to Jettison Relational Model The allure of document stores Examples borrowed from @sarahmei https://speakerdeck.com/sarahmei/switching-data-stores-a-postmodern-comedy {name: 83746251, url: ‘…’ stream:[ {friend:{ name: 9384726153, posts:[{content: ‘…’, comments:[ {comment: ‘…’, commenter: 83746251}, {…} ], likes: [83746251, 750730283, 2938493820] }, {…},{…},… ] }, {…},{…},… }  The reality is that the developer will store the user- ids instead  Developer is responsible for implementing ‘joins’ in the application – e.g. scanning all timelines for where a user made a comment or liked a post  No transactions to ensure consistency between documents
  • 20. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.20
  • 21. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.21 MySQL Cluster: Overview • Auto-Sharding, Multi-Master • ACID Compliant, OLTP + Real-Time Analytics HIGH SCALE, READS + WRITES • Shared nothing, no Single Point of Failure • Self Healing + On-Line Operations 99.999% AVAILABILITY • Open Source + Commercial Editions • Commodity hardware + Management, Monitoring Tools LOW TCO • Key/Value + Complex, Relational Queries • SQL + Memcached + JavaScript + Java + JPA + HTTP/REST & C++ SQL + NoSQL • In-Memory Optimization + Disk-Data • Predictable Low-Latency, Bounded Access Time REAL-TIME
  • 22. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.22 Who’s Using MySQL Cluster?
  • 23. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.23 MySQL Cluster Architecture MySQL Cluster Data Nodes Data Layer Clients Application Layer Management
  • 24. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.24 MySQL Cluster Architecture MySQL Cluster Data Nodes Data Layer Clients Application Layer Management Management
  • 25. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.25
  • 26. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.26 MySQL Cluster Architecture MySQL Cluster Data Nodes Data Layer Application Layer Management Management Clients
  • 27. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.27
  • 28. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.28 On-line Operations  Scale the cluster (add & remove nodes on-line)  Repartition tables  Upgrade / patch servers & OS  Upgrade / patch MySQL Cluster  Back-Up  Evolve the schema on-line, in real-time
  • 29. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.29
  • 30. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.30
  • 31. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.31 Scale-Out Reads & Writes on Commodity Hardware  8 x Commodity Intel Servers – 2 x 6-core processors 2.93GHz – x5670 processors (24 threads) – 48GB RAM  Infiniband networking  flexAsynch benchmark (NDB API) 0 200 400 600 800 1,000 1,200 2 4 8 Millions Number of Data Nodes SELECT Queries per Minute 0 20 40 60 80 100 120 4 8 Millions Number of Data Nodes UPDATE Queries per Minute
  • 32. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.32 JOIN Performance 33K rows over 11 tables Must Analyze tables for best results mysql> ANALYZE TABLE <tab-name>; 0 10 20 30 40 50 60 70 80 90 100 MySQL Cluster 7.1 MySQL Cluster 7.2 Query Execution Time Seconds Scalability a Performance a HA a Ease of use SQL/Joins a ACID Transactions a 70x More performance
  • 33. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.33 MySQL Cluster 7.4  Performance gain over 7.3 – 47% (Read-Only) – 38% (Read-Write) Better performance and operational simplicity labs.mysql.com  Faster node restarts – Recovering nodes rejoin the cluster faster
  • 34. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.34
  • 35. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.35 Creating & running your first Cluster The traditional way (pre-MCM & Auto-Installer) Download & Extract •edelivery.oracle.com •www.mysql.com •dev.mysql.com Configure •Cluster-wide “config.ini” •Per-mysqld “my.cnf” Start processes •Management Nodes •Data Nodes •MySQL Servers
  • 36. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.36 Scalability a Performance a HA a Ease of use a SQL/Joins a ACID Transactions a
  • 37. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.37
  • 38. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.38 MySQL Cluster 7.3: Auto-Installer  Fast configuration  Auto-discovery  Workload optimized  Repeatable best practices Specify Workload Auto- Discover Define TopologyDeploy
  • 39. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.39
  • 40. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.40 MySQL Cluster Manager 1. Download MCM/Cluster package from edelivery.oracle.com: 2. Unzip 3. Run agent, define, create & start Cluster! $> binmcmd --bootstrap MySQL Cluster Manager 1.1.2 started Connect to MySQL Cluster Manager by running "D:AndrewDocumentsMySQLmcmbinmcm" -a NOVA:1862 Configuring default cluster 'mycluster'... Starting default cluster 'mycluster'... Cluster 'mycluster' started successfully ndb_mgmd NOVA:1186 ndbd NOVA ndbd NOVA mysqld NOVA:3306 mysqld NOVA:3307 ndbapi * Connect to the database by running "D:AndrewDocumentsMySQLmcmclusterbinmysql" -h NOVA -P 3306 -u root
  • 41. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.41 MCM: Upgrade Cluster mysql> upgrade cluster --package=7.3 mycluster;
  • 42. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.42 Scalability a Performance a HA a Ease of use a SQL/Joins a ACID Transactions a
  • 43. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.43
  • 44. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.44
  • 45. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.45 NoSQL Access to MySQL Cluster data ClusterJ MySQL JDBC Apps JPA JNI Python Ruby ClusterJPA Apps Apps Apps Apps Apps Node.js JS Apps mod-ndb Apache Apps ndb-eng Memcached Apps Apps NDB API (C++) MySQL Cluster Data Nodes Apps PHP PERL Apps
  • 46. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.46 Schema-Free apps  Rapid application evolution – New types of data constantly added – No time to get schema extended – Missing skills to extend schema – Initially roll out to just a few users – Constantly adding to live system
  • 47. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.47 Cluster & Memcached – Schema-Free <town:maidenhead,SL6> key value <town:maidenhead,SL6> key value Key Value town:maidenhead SL6 generic table Application view SQL view
  • 48. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.48 Cluster & Memcached - Configured Schema <town:maidenhead,SL6> prefix key value <town:maidenhead,SL6> key value Prefix Table Key-col Val-col policy town: map.zip town code cluste r Config tables town ... code ... maidenhead ... SL6 ... map.zip Application view SQL view
  • 49. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.49 MySQL 5.6 Memcached with InnoDB 0 10000 20000 30000 40000 50000 60000 70000 80000 8 32 128 512 TPS Client Connections MySQL 5.6: NoSQL Benchmarking Memcach ed API SQL Clients and Applications MySQL Server Memcached Plug-in innodb_ memcached local cache (optional) Handler API InnoDB API InnoDB Storage Engine mysqld process SQL Memcached Protocol Up to 9x Higher “SET / INSERT” Throughput
  • 50. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.50 MySQL Cluster 7.3: Node.js NoSQL API  Native JavaScript access to MySQL Cluster – End-to-End JavaScript: browser to the app & DB – Storing and retrieving JavaScript objects directly in MySQL Cluster – Eliminate SQL transformation  Implemented as a module for node.js – Integrates Cluster API library within the web app  Couple high performance, distributed apps, with high performance distributed database  Optionally routes through MySQL Server V8 JavaScript Engine MySQL Cluster Node.js Module MySQL Cluster Data Nodes Clients
  • 51. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.51 MySQL Cluster NoSQL API for Node.js & FKs  FKs enforced on all APIs: { message: 'Error', sqlstate: '23000', ndb_error: null, cause: { message: 'Foreign key constraint violated: No parent row found [255]', sqlstate: '23000', ndb_error: { message: 'Foreign key constraint violated: No parent row found', code: 255, classification: 'ConstraintViolation', handler_error_code: 151, status: 'PermanentError' }, cause: null } }
  • 52. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.52 Next Steps Learn More • www.mysql.com/cluster • Authentic MySQL Curriculum: http://oracle.com/education/mysql Try it Out • dev.mysql.com/downloads/cluster/ Let us know what you think • clusterdb.com • @clusterdb • forums.mysql.com/list.php?25
  • 53. Copyright © 2014, Oracle and/or its affiliates. All rights Reserved.53