SlideShare a Scribd company logo
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

More Related Content

What's hot

Data persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdbData persistence using pouchdb and couchdb
Data persistence using pouchdb and couchdb
Dimgba Kalu
 
Data Management 2: Conquering Data Proliferation
Data Management 2: Conquering Data ProliferationData Management 2: Conquering Data Proliferation
Data Management 2: Conquering Data Proliferation
MongoDB
 
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
Treasure Data, Inc.
 
Couch db
Couch dbCouch db
Couch db
amini gazar
 
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
MongoDB
 
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
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 ...
Codemotion
 
Woa. Reloaded
Woa. ReloadedWoa. Reloaded
Woa. Reloaded
Emiliano Pecis
 
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
MongoDB
 
Intro To Couch Db
Intro To Couch DbIntro To Couch Db
Intro To Couch Db
Shahar Evron
 
MySQL without the SQL -- Cascadia PHP
MySQL without the SQL -- Cascadia PHPMySQL without the SQL -- Cascadia PHP
MySQL without the SQL -- Cascadia PHP
Dave 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
 
Azure cosmosdb
Azure cosmosdbAzure cosmosdb
Azure cosmosdb
Udaiappa Ramachandran
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
Trinh Phuc Tho
 
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
Galaxy
bosc
 
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
Neo4j
 
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
 

What's hot (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...
 

Similar to 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 Updates
Ryusuke 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 Support
Mysql 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 MySQL
Andrew 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 2014
Sanjay 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 DevAPI
Rui Quelhas
 
MySQL Quick Dive
MySQL Quick DiveMySQL Quick Dive
MySQL Quick Dive
Sudipta Kumar Sahoo
 
NoSQL and MySQL
NoSQL and MySQLNoSQL and MySQL
NoSQL and MySQL
Ted Wennmark
 
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 Features
Dave Stokes
 
MySQL 5.7 como Document Store
MySQL 5.7 como Document StoreMySQL 5.7 como Document Store
MySQL 5.7 como Document Store
MySQL 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 Data
InfiniteGraph
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx
Ivan 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.2
Connor 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 matters
Alexander 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 & design
Mark 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 - OOW2014
Anuj Sahni
 

Similar to 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
 

More from Andrew Morgan

MongoDB 3.4 webinar
MongoDB 3.4 webinarMongoDB 3.4 webinar
MongoDB 3.4 webinar
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 - EMEA
Andrew 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 orchestration
Andrew 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 Analytics
Andrew 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 charts
Andrew 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 webinar
Andrew 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 worlds
Andrew 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 Beyond
Andrew 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 2013
Andrew 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 worlds
Andrew Morgan
 
Mysql cluster introduction
Mysql cluster introductionMysql cluster introduction
Mysql cluster introduction
Andrew 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
 

More from 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...
 

Recently uploaded

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 

Recently uploaded (20)

First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 

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