1 / 40

What’s New in MySQL Cluster 7.3

What’s New in MySQL Cluster 7.3. Andrew Morgan (clusterdb.com) MySQL Product Manager. MySQL Cluster: Overview. HIGH SCALE, READS + WRITES. 99.999% AVAILABILITY. LOW TCO. SQL + NoSQL. REAL-TIME. Auto-Sharding, Multi-Master ACID Compliant, OLTP + Real-Time Analytics.

veata
Download Presentation

What’s New in MySQL Cluster 7.3

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. What’s New in MySQL Cluster 7.3 Andrew Morgan (clusterdb.com) MySQL Product Manager

  2. MySQL Cluster: Overview HIGH SCALE, READS + WRITES 99.999% AVAILABILITY LOW TCO SQL + NoSQL REAL-TIME • Auto-Sharding, Multi-Master • ACID Compliant, OLTP + Real-Time Analytics • Shared nothing, no Single Point of Failure • Self Healing + On-Line Operations • Open Source + Commercial Editions • Commodity hardware + Management, Monitoring Tools • Key/Value + Complex, Relational Queries • SQL + Memcached + JavaScript + Java + JPA + HTTP/REST & C++ • In-Memory Optimization + Disk-Data • Predictable Low-Latency, Bounded Access Time

  3. Who’s Using MySQL Cluster?

  4. 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 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 • SOLUTIONS • MySQL Cluster 7.2 CGE • MySQL Cluster Manager • MySQL 24x7 Premier Support • 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

  5. MySQL Cluster Architecture Clients Application Layer Data Layer Management MySQL Cluster Data Nodes

  6. MySQL Cluster Architecture Clients Application Layer Data Layer Management Management MySQL Cluster Data Nodes

  7. MySQL Cluster Architecture Clients Application Layer Data Layer Management Management MySQL Cluster Data Nodes

  8. MySQL Cluster 7.2 70x Faster JOINs 8x Higher Per Node Performance Fastest Ramp…Ever NoSQLMemcached API writes Geo-Distributed Clusters

  9. Auto-Installer • NoSQL JavaScript for node.js • Foreign Key Support • Connection Thread Scalability • MySQL 5.6

  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

  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/

  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) | +---------+------+-------------------------------------------------------------------------------------------+

  13. MySQL Workbench: support for MySQL Cluster Foreign Keys

  14. Storage Engine Compatibility

  15. NoSQL Access to MySQL Cluster data Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps Apps JPA ClusterJPA Apache PHP PERL Python Ruby JDBC ClusterJ JS Memcached ndb-eng MySQL JNI Node.js mod-ndb NDB API (C++) MySQL Cluster Data Nodes

  16. 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

  17. What does an asynchronous API mean? Get on with other stuff Get on with other stuff do_stuff1(data, callback1) callback1(results) do_stuff2(data, callback2) callback2(results)

  18. MySQL Cluster 7.3: JavaScript Connector for Node.js • 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) varnosql = require('mysql-js'); var annotations = new nosql.TableMapping('towns').applyToClass(Town); vardbProperties = nosql.ConnectionProperties('ndb'); nosql.openSession(dbProperties, Town, annotations, onSession); Tutorial https://blogs.oracle.com/MySQL/entry/mysql_cluster_tutorial_nosql_api

  19. MySQL Cluster NoSQL API for Node.js varonSession= function(err, session) { if (err) {console.log(err);process.exit(0);} else { var data = new Town('Maidenhead', 'Berkshire'); session.persist(data, onInsert, data, session); } };

  20. MySQL Cluster NoSQL API for Node.js varonInsert= function(err, object, session) { if (err) {console.log(err);} else { console.log('Inserted: ' + JSON.stringify(object)); session.find(Town, 'Maidenhead', onFind); } };

  21. MySQL Cluster NoSQL API for Node.js varonFind= function(err, result) { if (err) {console.log(err);} else { console.log('Found: ' +JSON.stringify(result)); } process.exit(0); };

  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 } }

  23. MySQL Cluster 7.3: MySQL 5.6 Support • Select storage engine for each table in the app (InnoDB is the default) • InnoDB: Large Rows, DSS Queries, Full Text Search • MySQL Cluster: Auto-sharding, real-time, HA • Uses latest MySQL 5.6 Server • Enhanced Optimizer • Replication Checksums • Time-Delayed Replication InnoDB Local InnoDB Tables MySQL Cluster NDB Storage Engine

  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 With Connection Thread Scalability MySQL Cluster Data Nodes MySQL Cluster Data Nodes

  25. MySQL Cluster 7.3: Auto-Installer Auto-Discover Specify Workload • Fast configuration • Auto-discovery • Workload optimized • Repeatable best practices • For MySQL Cluster 7.2 + 7.3 Define Topology Deploy

  26. MySQL Cluster 7.3: Auto-Installer Easy to run: bin/ndb_setup setup.bat • Multi-host support • Remote deployments MySQL Cluster Auto-Installer

  27. Define Hosts

  28. Auto-Discovery

  29. Modify hosts

  30. Define nodes

  31. Refine config

  32. Deploy

  33. Auto-Installer: See it in action • Live Demo: “Deploy and Scale MySQL Cluster Like a Pro Without Opening the Manual” [CON3763] (Saturday 14:30 Union Square Room 5/6) • Demo Video: http://clusterdb.com/u/ai

  34. Enhancing DevOps Agility, Reducing Downtime

  35. How Does MySQL Cluster Manager Help? Example: Initiating upgrade from MySQL Cluster 7.0 to 7.3 With MySQL Cluster Manager Before MySQL Cluster Manager upgrade cluster --package=7.3 mycluster; Total: 1 Command - Unattended Operation • 1 x preliminary check of cluster state • 8 x ssh commands per server • 8 x per-process stop commands • 4 x scp of configuration files (2 x mgmd & 2 x mysqld) • 8 x per-process start commands • 8 x checks for started and re-joined processes • 8 x process completion verifications • 1 x verify completion of the whole cluster. • Excludes manual editing of each configuration file. Total: 46 commands - 2.5 hours of attended operation

  36. 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

  37. Getting Started

  38. Graphic Section Divider

More Related