+ All Categories
Home > Documents > MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · •...

MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · •...

Date post: 27-Jun-2020
Category:
Upload: others
View: 5 times
Download: 0 times
Share this document with a friend
54
1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. MYSQL & NOSQL: THE BEST OF BOTH WORLDS Mark Swarbrick Principal System Consultant, MySQL
Transcript
Page 1: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MYSQL & NOSQL: THE BEST OF BOTH WORLDS

Mark Swarbrick Principal System Consultant, MySQL!

Page 2: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL & NoSQL: The Best of Both Worlds Mark Swarbrick Principal System Consultant MySQL [email protected]

Page 3: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

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.

Page 4: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

History of MySQL I

§  2001 MySQL 3.23 GA – our first GA release ever!

§  2005 Oracle Corporation acquired Innobase OY

§  2008 Sun acquired MySQL AB for $1 billion

§  2010 Oracle acquired Sun on 27 January

§  2010 MySQL 5.5 first Oracle release, great feedback from community!

§  2012 MySQL 5.6 “Best release ever“

Page 5: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

History of MySQL II

§  World’s Most Popular Open Source Database

§  Over 12 million product installations

§  65,000 downloads/day

§  The ”M” of the widely deployed LAMP stack

§  MySQL Commercial Editions Available

Page 6: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

World wide use

Page 7: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

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)

• What is coming with future releases

Page 8: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

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  

Page 9: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Still a role for the RDBMS?

NoSQL  

Simple  access  pa/erns  

Compromise  on  consistency  for  performance  

Ad-­‐hoc  data  format  

Simple  opera:on  

RDBMS  

Complex  queries  with  joins  

ACID  transac:ons  

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  Transac>ons  

Page 10: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL Cluster introduction

Page 11: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL Cluster Architecture

Data Nodes

Node Group 1

F1

F3

F3

F1

Nod

e 1

Nod

e 2

Node Group 2

F2

F4

F4

F2 N

ode

3 N

ode

4

Application Nodes

Cluster Mgr

Cluster Mgr

REST Scalability  

Performance  

HA  

Ease  of  use  

SQL/Joins   "

ACID  Transac>ons   "

Page 12: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Copyright 2013, Oracle and/or its affiliates. All rights reserved.

MySQL Cluster: Extensive Choice of NoSQL APIs

Mix &

Match

Page 13: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

C++ example

NdbOperation *op = trx->getNdbOperation(myTable); op->insertTuple(); op->equal("key", i); op->setValue("value", &value); trx->execute( NdbTransaction::Commit );

Page 14: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved. Copyright 2013, Oracle and/or its affiliates. All rights reserved.

•  NoSQL C++ API, flexaSynch benchmark •  30 x Intel E5-2600 Intel Servers, 2 socket, 64GB •  ACID Transactions, with Synchronous Replication

0

5

10

15

20

25

2 4 6 8 10 12 14 16 18 20 22 24 26 28 30

Mill

ions

of U

PDAT

Es p

er

Seco

nd

MySQL Cluster Data Nodes

1.2 Billion UPDATEs per Minute

Page 15: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL Cluster Architecture

Data Nodes

Node Group 1

F1

F3

F3

F1

Nod

e 1

Nod

e 2

Node Group 2

F2

F4

F4

F2 N

ode

3 N

ode

4

Application Nodes

Cluster Mgr

Cluster Mgr

REST Scalability  

Performance  

HA   "

Ease  of  use  

SQL/Joins   "

ACID  Transac>ons   "

http://clusterdb.com/u/demo

Page 16: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data Node 1

Data Node 2

Data Node 3

Data Node 4

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Page 17: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data Node 1

Data Node 2

F1

Data Node 3

Data Node 4

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Page 18: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data Node 1

Data Node 2

F1

F1

Data Node 3

Data Node 4

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Page 19: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data Node 1

Data Node 2

F1

F3 F1

Data Node 3

Data Node 4

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Page 20: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Page 21: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

F2 F4

F4 F2

Node Group 1

Node Group 2

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Page 22: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data Node 1

Data Node 2

F1 F3

F3 F1

Data Node 3

Data Node 4

F2 F4

F4 F2

Node Group 1

Node Group 2

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Page 23: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Table T1

P2 P3 P4

P1

Scale-Out: Auto-Partitioning

Scalability   "

Performance  

HA   "

Ease  of  use  

SQL/Joins   "

ACID  Transac>ons   "

Page 24: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

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

Mill

ions

Number of Data Nodes

SELECT Queries per Minute

0

50

100

150

4 8

Mill

ions

Number of Data Nodes

UPDATE Queries per Minute

Page 25: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Scalability   "

Performance   "

HA   "

Ease  of  use  

SQL/Joins   "

ACID  Transac>ons   "

Page 26: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

On-line Schema changes

•  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

On-Line Operations

Page 27: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

§ Foreign Key Support § Connection Thread Scalability § MySQL 5.6

§ Auto-Installer § NoSQL JavaScript for

node.js

Page 28: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL Cluster 7.3: Auto-Installer

•  Fast configuration •  Auto-discovery • Workload optimized • Repeatable best

practices •  For MySQL Cluster

7.2 + 7.3

Specify Workload

Auto-Discover

Define Topology Deploy

Page 29: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Scalability   "

Performance   "

HA   "

Ease  of  use   "

SQL/Joins   "

ACID  Transac>ons   "

Page 30: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

NoSQL Access to MySQL Cluster data

Mix & Match! Same data accessed

simultaneously through SQL & NoSQL interfaces

Page 31: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL Cluster 7.1: ClusterJ/JPA

•  New Domain Object Model Persistence API (ClusterJ) : –  Java API –  High performance, low latency –  Feature rich

•  JPA interface built upon this new Java layer: –  Java Persistence API compliant

•  Implemented as an OpenJPA plugin

–  Uses ClusterJ where possible, reverts to JDBC for some operations

–  Higher performance than JDBC –  More natural for most Java designers –  Easier Cluster adoption for web applications

Page 32: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Java Access Performance

http://www.mysql.com/why-mysql/white-papers/mysql_wp_cluster_connector_for_java.php

Page 33: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

NoSQL with Memcached (MySQL Cluster 7.2)

•  Memcached is a distributed memory based hash-key/value store with no persistence to disk

•  NoSQL, simple API, popular with developers •  MySQL Cluster already provides scalable, in-memory

performance with NoSQL (hashed) access as well as persistence –  Provide the Memcached API but map to NDB API calls

•  Writes-in-place, so no need to invalidate cache •  Simplifies architecture as caching & database integrated

into 1 tier •  Access data from existing relational tables

Page 34: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Traditional Memcached Architecture

•  Two levels of hashing

Memcache

httpd memcached

memcached

memcached memcache key

PHP/Perl

friends:12389!

hash key to find data

hash key to pick server

Page 35: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Cache hit

Memcache

httpd

memcached PHP/Perl

friends:12389!

hash key to find data

VALUE friends:12389 0 31\r\n!101, 11009, 11150, 55881, 77798 \r\n!

hash key to pick server

Page 36: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Cache miss (1): fetch from DB

Memcache

httpd

memcache PHP/Perl hash key to find data

hash key to pick server

NOT FOUND

mysql

MySQL Slave

SELECT friend_id !FROM user_friends !WHERE user_id = ?!

memcached

Page 37: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Cache miss (2): manage cache

Memcache

httpd

PHP/Perl hash key to find data

set friends:12389 31\r\n!

101, 11009, 11150, 55881, 77798 \r\n!

memcached

Page 38: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data change (1): Write to DB

mysql

httpd

PHP/Perl

MySQL Master

DELETE FROM user_friends ! VALUES (12389, 999101);!

Page 39: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Data change (2): manage cache

mysql

httpd

PHP/Perl

MySQL Master

delete friends:12389 \r\n!

memcached

Page 40: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

NoSQL with Memcached

•  Flexible: –  Deployment options –  Multiple Clusters –  Simultaneous SQL Access –  Can still cache in Memcached server –  Flat key-value store or map to multiple tables/

columns

set maidenhead 0 0 3 SL6

STORED

get maidenhead

VALUE maidenhead 0 3

SL6

END

Page 41: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

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

Page 42: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

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   cluster  

pop:   map.zip   town   popul   cluster  

Config tables

town   ...   code   popul  

maidenhead   ...   SL6   ...  

map.zip

Application view

SQL view

Page 43: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Memcached with MySQL Cluster

http://clusterdb.com/u/memcached

Try it out

Page 44: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Memcached NoSQL Access with InnoDB •  Memcached as a plugin of MySQL Server;

same process space, with very low latency access to data

•  Memcapable: supports both memcached ascii protocol and binary protocol

•  Support multiple columns: users can map multiple columns into “value”

•  Optional local caching: “innodb-only”, “cache-only”, and “caching”

•  Batch operations for performance

•  Available from in MySQL 5.6

InnoDB Storage Engine

Handler API

MySQL Server

InnoDB API

memcached plugin

Application

SQL Memcached protocol

mysqld

innodb_memcache local cache (optional)

Page 45: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Performance

Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Up to 9x Higher “SET / INSERT” Throughput

0

10000

20000

30000

40000

50000

60000

70000

80000

8 32 128 512

TPS

Client Connections

MySQL 5.6: NoSQL Benchmarking

Memcached API

SQL

16 GB, Intel Xeon 2.0 GHz CPU X86_64 2 CPUs- 4 Core Each, 2 RAID DISKS

Page 46: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

InnoDB & Memcached - Configured Schema

<town:maidenhead,SL6:12000>

prefix key value

<@@town:maidenhead,SL6:12000>

key value

name   schema   table   keycol   valcols   flags  

town   map   city   town   code,popul  

country   world   state   code   name,capital  

Config tables

town   ...   code   popul  

maidenhead   ...   SL6   12000  

map.city

Application view

SQL view

Page 47: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

47 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Which API to use?

Page 48: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

48 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Scalability   "

Performance   "

HA   "

Ease  of  use   "

SQL/Joins   "

ACID  Transac>ons   "

Page 49: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

49 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

MySQL Cluster 7.3: Node.js NoSQL API •  Native JavaScript access to MySQL Cluster

–  End-to-End JavaScript: browser to the app and database

–  Storing and retrieving JavaScript objects directly in MySQL Cluster

–  Eliminate SQL transformation

•  Implemented as a module for node.js –  Integrates full Cluster API library within the web

app •  Couple high performance, distributed apps, with

high performance distributed database

V8 JavaScript Engine

MySQL Cluster Node.js Module

MySQL Cluster Data Nodes

Clients

Page 50: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

50 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Try Node.js example for yourself •  https://github.com/mysql/mysql-js/tree/master/samples

Page 51: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

51 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Who’s Using MySQL Cluster?

Page 52: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

52 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Summary

Today’s web workloads demand more from databases

Performance, scale-out, simples access patterns & APIs

MySQL meets these needs while still delivering benefits of an ACID RDBMS

Page 53: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

53 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Next Steps • Guide to MySQL and NoSQL - Delivering the Best of

Both Worlds –  http://mysql.com/why-mysql/white-papers/mysql-wp-guide-to-

nosql.php

•  Evaluate MySQL Cluster 7.3 –  http://www.mysql.com/downloads/cluster/

•  Bootstrap a Cluster –  https://edelivery.oracle.com/

•  Try Memcached API for InnoDB in 5.6 •  http://www.mysql.com/downloads/

Page 54: MYSQL & NOSQL: THE BEST OF BOTH WORLDSnosqlroadshow.com/dl/NoSQL-Amsterdam-2013/Slides/... · • NoSQL C++ API, flexaSynch benchmark • 30 x Intel E5-2600 Intel Servers, 2 socket,

54 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

Thank you!

Copyright 2012, Oracle and/or its affiliates. All rights reserved.


Recommended