• Save
MySQL Cluster 7.3 - London Meetup - July 2013
Upcoming SlideShare
Loading in...5
×
 

MySQL Cluster 7.3 - London Meetup - July 2013

on

  • 1,191 views

Introduction to MySQL Cluster followed by a description of the enhancements and new featires added in MySQL Cluster 7.3 - including browser-based auto-installer, Foreign Keys & Node.js native ...

Introduction to MySQL Cluster followed by a description of the enhancements and new featires added in MySQL Cluster 7.3 - including browser-based auto-installer, Foreign Keys & Node.js native JavaScript API

Statistics

Views

Total Views
1,191
Views on SlideShare
1,191
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MySQL Cluster 7.3 - London Meetup - July 2013 MySQL Cluster 7.3 - London Meetup - July 2013 Presentation Transcript

  • MySQL Cluster 7.3 GA: What's New Andrew Morgan (@andrewmorgan) www.clusterdb.com MySQL High Availability – Product Management 4th July 2013
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 2 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 © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 3 Who’s Using MySQL Cluster? View slide
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 4 OVERVIEW  World’s largest producer of Casual Games  Distributed 3bn games, 150 countries, 13 local sites CHALLENGES / OPPORTUNITIES  Personalizing the customer experience DATABASE REQUIREMENTS  High velocity data ingest from BI platform  Real time rendering of personalized content  Continuous availability for uninterrupted gaming  Enterprise SLAs and strong technology roadmap CUSTOMER PERSPECTIVE ”As a strategic project, We couldn’t afford to take any chances. MySQL Cluster provided us with a proven & trusted solution to meet the demands of both our business and our users" Sean Chighizola, Senior Director of DBA Group, Big Fish RESULTS • Reduce complexity with re-use of MySQL skills • Linear scaling: loading 25m – 1bn records • Developer Flexibility: SQL & NoSQL connectors • Automated on-line node additions and reconfiguration • Capacity to meet future growth http://www.mysql.com/why-mysql/case-studies/mysql-cs-bigfish.html SOLUTIONS • MySQL Cluster 7.2 CGE • MySQL Cluster Manager • MySQL 24x7 Premier Support View slide
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 5 MySQL Cluster Architecture MySQL Cluster Data Nodes Data Layer Clients Application Layer Management
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 6 MySQL Cluster Architecture MySQL Cluster Data Nodes Data Layer Clients Application Layer Management Management
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 7 MySQL Cluster Architecture MySQL Cluster Data Nodes Data Layer Application Layer Management Management Clients
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 8 MySQL Cluster 7.2 70x Faster JOINs Fastest Ramp…Ever 8x Higher Per Node Performance writes NoSQL Memcached API Geo-Distributed Clusters
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 9  Foreign Key Support  Connection Thread Scalability  MySQL 5.6  Auto-Installer  NoSQL JavaScript for node.js
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 10 MySQL Cluster 7.3 GA: Foreign Keys  Brings MySQL Cluster to a broader range of workloads – Packaged apps, custom projects  Adds powerful functionality while reducing complexity – App logic & data model  Enabled by default  Enforced for SQL & NoSQL APIs  On-line add and drop
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 11 MySQL Cluster 7.3 GA: Foreign Keys  Implementation goal: compatibility with InnoDB – Easy migration of solutions already working with InnoDB  Foreign keys are natively implemented in the storage engine  Created in SQL  Enforced in SQL & NoSQL (C++, ClusterJ, memcached, node.js) http://www.clusterdb.com/mysql-cluster/foreign-keys-in- mysql-cluster/
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 12 Foreign Keys - Example mysql> CREATE TABLE towns (town VARCHAR(30) NOT NULL PRIMARY KEY, county VARCHAR(30), INDEX county_county_index (county), CONSTRAINT county_town FOREIGN KEY (county) REFERENCES counties(county) ON DELETE RESTRICT ON UPDATE RESTRICT) ENGINE=ndb; … mysql> DELETE FROM counties WHERE county='Berkshire'; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (Unknown error code) mysql> SHOW WARNINGS; +---------+------+-------------------------------------------------------------------------------------------+ | Level | Code | Message | +---------+------+-------------------------------------------------------------------------------------------+ | Warning | 1296 | Got error 256 'Foreign key constaint violated: Referenced row exists' from NDB | | Error | 1451 | Cannot delete or update a parent row: a foreign key constraint fails (Unknown error code) | +---------+------+-------------------------------------------------------------------------------------------+
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 13 MySQL Workbench: support for MySQL Cluster Foreign Keys
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 14 Storage Engine Compatibility InnoDB MyISAM MySQL Cluster Foreign Keys ✔ ✖ ✔ CASCADE ✔ N/A ✔ UPDATE ✔ N/A No PK UPDATE DELETE ✔ N/A ✔ RESTRICT ✔ N/A ✔ NO ACTION Same as RESTRICT N/A Deferred Check SET NULL ✔ N/A ✔
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 15 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 © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 16 MySQL Cluster 7.3 EA: 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 © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 17 What does an asynchronous API mean? do_stuff1(data, callback1) callback1(results) do_stuff2(data, callback2) callback2(results) Get on with other stuff Get on with other stuff
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 18 MySQL Cluster 7.3: JavaScript Connector for node Modular connector with various back-end adapters: • ndb: low-level native access to MySQL Cluster • mysql: access to any MySQL server (translates operations to SQL statements) var nosql = require('mysql-js'); var annotations = new nosql.TableMapping('towns').applyTo Class(Town); var dbProperties = nosql.ConnectionProperties('ndb'); nosql.openSession(dbProperties, Town, annotations, onSession); Tutorial https://blogs.oracle.com/MySQL/entry/mysql_cluster_tutorial_nosql_api
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 19 var onSession = function(err, session) { if (err) {console.log(err); process.exit(0);} else { var data = new Town('Maidenhead', 'Berkshire'); session.persist(data, onInsert, data, session); } }; MySQL Cluster NoSQL API for Node.js
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 20 var onInsert = function(err, object, session) { if (err) {console.log(err);} else { console.log('Inserted: ' + JSON.stringify(object)); session.find(Town, 'Maidenhead', onFind); } }; MySQL Cluster NoSQL API for Node.js
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 21 var onFind = function(err, result) { if (err) {console.log(err);} else { console.log('Found: ' + JSON.stringify(result)); } process.exit(0); }; MySQL Cluster NoSQL API for Node.js
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 22 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 © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 23 MySQL Cluster 7.3: MySQL 5.6 Support MySQL Cluster NDB Storage Engine Local InnoDB TablesInnoDB  Select storage engine for each table in the app (InnoDB is the default) – InnoDB: Large Rows, DSS Queries, FTS – MySQL Cluster: Auto-sharding, real- time, HA  Uses latest MySQL 5.6 Server – Enhanced Optimizer – Replication Checksums – Time-Delayed Replication
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 24 MySQL Cluster 7.3: Connection Thread Scalability  Increases throughput of each connection to the data layer  More client threads can use each connection by splitting mutexes  Reduces configuration complexity  Increases cluster scalability  Each connection consumes one of 256 node ids  Up to 7.5x higher performance per connection  SQL & NoSQL interfaces MySQL Cluster Data Nodes MySQL Cluster Data Nodes With Connection Thread Scalability
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 25 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 TopologyDeploy
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 26 MySQL Cluster 7.3: Auto-Installer Multi-host support Remote deployments Easy to run: – bin/ndb_setup – setup.bat MySQL Cluster Auto-Installer
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 27 Define Hosts
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 28 Auto-Discovery
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 29 Modify hosts
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 30 Define nodes
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 31 Refine config
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 32 Deploy
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 33
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 34 Auto-Installer Tutorial Video http://dev.mysql.com/tech-resources/articles/mysql- cluster-auto-installer.html
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 35 Evaluate MySQL Cluster CGE 30-Day Trial  Navigate to http://edelivery.oracle.com/ and step through (selecting “MySQL Database” as the Product Pack)  Select MySQL Cluster Manager
  • Copyright © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 36 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 © 2013, Oracle and/or its affiliates. All rights reserved | 4th July 2013 | Oracle reserves the right to change the content and timing of all future releases . 37