SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Elastic Scalability in 
MySQL Fabric using 
OpenStack 
Mats Kindahl 
Senior Principal Software Developer 
Narayanan Venkateswaran 
Principal Software Developer 
Copyright © 2014, Oracle and/or its affiliates. AAllll rriigghhttss rreesseerrvveedd.. || 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Safe Harbor 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. | 
2014-10-02
Session Outline 
1 Elasticity in Computing 
2 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
3 
4 
5 
OpenStack 
Introduction to MySQL Fabric 
Elasticity in MySQL Fabric using OpenStack 
Closing Remarks & Thoughts for the Future
Elasticity in Computing 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
What is Elasticity? 
“[Elasticity] is defined as the 
degree to which a system is 
able to adapt to workload 
changes by provisioning and 
deprovisioning resources in an 
autonomic manner” 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Elasticity from our Perspective 
● Managing read load 
– Read load increases 
– Problem: Read servers 
overloaded 
– Solution: Add more read 
servers 
● Managing shards 
– A shard is hot or full 
– Problem: slower queries 
– Solution: Split the shard 
• Managing server failures 
– A server in a group fails 
– Slave is promoted 
– Problem: Availability is 
affected 
– Solution: Add replacement 
node 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
OpenStack 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
What is OpenStack? 
“OpenStack is a free and open-source 
software cloud 
computing software platform” 
What 
is that? 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Cloud Computing According to NIST 
● Resouce pooling 
– Resources are assigned and reassigned based on customer demand 
● Broad network access 
– Capabilities are accessed over the network through standard mechanisms 
● Measured service 
● On-demand self-service 
– Customer can unilaterally provision computing capabilities 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
● Rapid elasticity 
– Capabilities can be elastically provisioned and released
OpenStack Deployment Example 
● Controller Node 
– Manages Identities 
– Manages Images 
– Manages Block Storage 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
● Compute Node 
– (Virtual) machine host 
– Contain hypervisor 
– Spawn and destroy virtual 
machines 
Controller 
Compute 
(VM Host)
Introduction to 
MySQL Fabric 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
What is MySQL Fabric? 
An extensible and easy-to-use 
framework for managing 
a farm of MySQL servers 
supporting high-availability 
and sharding 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
What does all that mean? 
● Management System 
– Manages a MySQL Farm 
– Distributed Framework 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
● Framework 
– Procedure execution 
– State store 
– Transaction Routing 
● Extensible 
– Extensions are first-class 
– High-availability groups 
– “Semi-automatic” sharding 
● Written in Python 
● Latest Release 1.5.2 GA 
● Open Source 
– You can participate 
– Suggest features 
– Report bugs 
– Contribute patches 
● MySQL 5.6 is focus
MySQL Fabric: Goals & Features 
● Decision logic in connector 
– Eliminates network hop 
– Reduce network load 
– Eliminate single point of failure 
– Scale naturally: not a bottleneck 
● Connector API extensions 
– Support transactions 
– Support full SQL 
● Load balancing 
– Read-write split 
– Weighted round-robin 
● Cloud integration 
– Support elasticity 
– Servers on-demand 
● Multi-table sharding 
● Sharding functions 
– Range 
– (Consistent) hash 
● Shard operations 
– Shard move 
– Shard split 
● Global updates 
– Global tables 
– Schema updates 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
A Brief History of MySQL Fabric 
● MySQL Fabric 1.4 
– First public release Sept 2013 
– MySQL Fabric 1.4.3 GA May 2014 
– High-availability groups 
– Failure detection 
– Load balancing 
– Range and hash sharding 
– Shard move and split 
– Connector/J support 
– Connector/PHP support 
– Connector/Python support 
– Doctrine 
– Hibernate 
● MySQL Fabric 1.5 
– MySQL Fabric 1.5.1 RC in Aug 2014 
– MySQL Fabric 1.5.2 GA in Sept 2014 
– Cloud Integration (WL#6432) 
– MySQL-RPC support (WL#7600) 
– Connector/NET support 
– Labs: C API 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Birds-eye View 
Application 
SQL 
Connector 
Connector 
Connector 
High Availability Groups 
XML-RPC 
MySQL-RPC 
SQL 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Operator 
MySQL 
Fabric 
Node 
Database 
Servers
High-Level Components 
● Fabric-aware Connectors 
– Python, PHP, Java, .NET, C 
– Enhanced Connector API 
● MySQL Fabric Node 
– Manage information about farm 
– Provide status information 
– Execute procedures 
● MySQL Servers 
– Organized in high-availability 
groups 
– Handling application data 
Application Connector 
High Availability 
Group 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Connector 
Connector 
MySQL 
Fabric 
Node
MySQL Fabric Node Architecture 
? Connector 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
MySQL 
MySQL Fabric 
Framework 
Executor State Store 
(Persister) 
Sh 
? 
HA 
AMQP MySQL-RPC XML-RPC 
Connector 
Connector 
Protocols 
Extensions 
Backing 
Store
High-Availability Concepts 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
● Redundancy 
– Duplicate components 
● Monitoring 
– Detecting failing components 
– Monitor load 
● Procedures 
– Activate replacements 
– Distribute load
MySQL Fabric and the Cloud 
Using OpenStack for Elasticity 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Server Providers 
● Server Creation 
– Create new server instances 
● Internal Memory 
● Disk Size 
● Number of CPUs 
– Configured for the purpose 
● GTID enabled 
● Binary log enabled 
● Correct engines enabled 
● Server Filling 
– Fill instance with data 
● Clone from an existing server 
● Restore a backup 
– Set up replication 
● Point secondary to primary 
– Custom filling operation 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Already handled 
in MySQL Fabric 
MySQL Fabric + Cloud
Server Providers 
● A “server factory” 
– Abstract concept 
– Extension interface added to MySQL Fabric 
● Possible to support multiple providers 
– OpenStack Nova (in MySQL Fabric 1.5) 
– OpenStack Trove 
– Amazon AWS 
– Amazon RDS 
– Custom hardware registry 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
MySQL Fabric and OpenStack 
MySQL Fabric Node OpenStack Instance 
Application 
High-Availability Groups / Shards 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Adding a new provider to MySQL Fabric 
● Register a provider with MySQL Fabric 
● Provide API address and user credentials 
● Provider type OPENSTACK spawns new virtual machines 
mysqlfabric provider register my_stack 
mats xyzzy http://example.net:5000/v2.0/ 
my_project 
--provider_type=OPENSTACK 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Creating a new server from MySQL Fabric 
● Create a new machine using the registered provider 
● Provide an image to use for the machine 
– You have to set up the image beforehand 
● Provide a cloud-init script to set up MySQL server 
mysqlfabric machine create my_stack 
--image name=”Oracle Linux 7 amd64” 
--flavor name=m1.small 
--userdata=mysql-oracle-linux-init 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Creating a snapshot from MySQL Fabric 
● Create a snapshot of an existing machine 
● Return an provider-internal name of the snapshot 
● Can be used to create your “golden image” 
mysqlfabric snapshot create my_stack 
903476b7-db4d-4d63-84e6-f79c7d0cec31 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Elasticity using providers 
● Read load increases 
– Spawn new read servers 
– Add them to the group 
● Shard is overloaded 
– Spawn new servers for a shard 
– Create a new shard 
– Split existing shard 
● Server is lost 
– High-availability is reduced 
– Spawn new server 
– Add it to the group 
Can we automate this? 
Yes, we can! 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
MySQL Fabric executor 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
● Event driven 
– Events will trigger execution of procedures 
– Procedures can trigger events themselves 
– Each step of a procedure is called a job 
● Procedures 
– Written in Python 
– Interacts with servers 
– Write state changes into backing store 
– Lock manager for conflict resolution 
● Conservative two-phase locking strategy 
● Avoid deadlocks 
Queue 
Backing 
Store 
Events
Automatically adding a server to a group 
● Register procedure for event 
– @on_event decorator 
– Accept event to register for 
● Fetch the group the server 
belonged to 
● Fetch a new server from the 
provider 
● Add the server to the group 
@on_event(SERVER_LOST) 
def _add_server(group_id, server_uuid): 
group = Group.fetch(group_id) 
machines = PROVIDER.create_machines( 
parameters 
) 
server = MySQLServer( 
server_uuid, address 
) 
MySQLServer.add(server) 
group.add(server) 
_configure_as_slave(server) 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
MySQL Fabric procedure execution 
● Before starting a job: 
– Aquire the necessary locks 
– Checkpoint execution state in backing store 
– Start a transaction on the backing store 
● When executing job: 
– Make updates to backing store inside transaction 
– Interact with servers 
● After executing a job: 
– Mark job completed in internal log 
– Commit transaction on backing store 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Queue 
Backing 
Store 
Events 
What about crashes?
MySQL Fabric executor recovery 
● Two types of jobs: 
– Idempotent: Restart the job 
– Not idempotent: Execute compensation 
● Recovery procedure 
– Start the executor 
– Collect unfinished checkpoints 
– Execute compensation activity for each job 
associated with the checkpoint 
… if there is one 
– Re-schedule each job 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Queue 
Backing 
Store 
Events
Defining an compensation procedure 
● Use the @undo decorator 
● Compensating action 
– Search for the machine by UUID 
– Give it back to provider 
● Compensating actions 
need to be idempotent 
@_add_server.undo 
def _undo_add_srv(group_id, server_uuid): 
meta_filters = { 
'mysql­fabric­machine­group­uuid': 
server_uuid 
} 
machines = MANAGER.search_machines( 
{}, meta_filters 
) 
for machine in machines: 
MANAGER.destroy_machine( 
machine.uuid 
) 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Example using Rackspace Provider 
mysqlfabric provider register my_rackspace 
mats xyzzy https://lon.identity.api.rackspacecloud.com/v2.0/ 
­­tenant 
accountnumber 
­­extra 
auth_system=rackspace 
­­provider_ 
type OPENSTACK 
mysqlfabric machine create my_rackspace 
­­image 
id=8c964b3f­8c15­4966­86ee­7a55824df564 
­­flavor 
name="512MB Standard Instance" 
Note 
authentication plugins 
support for (coming) 
Require Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Experiments with Amazon AWS 
mysqlfabric provider register my_amazon 
AKIAIOSFODNN7EXAMPLE wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY 
eu­west­1 
­­provider_ 
type=AMAZON 
mysqlfabric machine create my_amazon 
­­image 
image­id= 
ami­892fe1fe 
­­flavor 
name=t2.micro 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Note! 
Not in MySQL Fabric 1.5 
Will be on MySQL Labs
Experiments with OpenStack Trove 
mysqlfabric provider register my_trove 
mats xyzzy https://lon.identity.api.rackspacecloud.com/v2.0/ 
­­tenant 
123456 
­­extra 
service_type=rax:database 
­­provider_ 
type=OPENSTACK.DATABASE 
mysqlfabric server create my_trove 
­­flavor 
name="512MB Instance" ­­size 
1 
­­users 
mats:xyzzy ­­databases 
employee 
­­datastore 
MySQL ­­datastore_ 
version 5.6 Note! 
Not in MySQL Fabric 1.5 
Will be on MySQL Labs 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Closing remarks 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
What do we have now? 
● High-availability 
– Group Concept 
– Slave promotion 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
● Sharding 
– Range and hash sharding 
– Shard move and shard split 
● Connector APIs 
– Transaction properties 
– “Virtual” connections 
● Cloud integration 
– “Server providers” 
– OpenStack Nova 
● Enhanced connectors 
– Connector/Python 
– Connector/PHP 
– Connector/J 
– Connector/NET 
● Interfaces 
– Command-line 
– XML-RPC 
– MySQL-RPC 
● Distributed failure detector 
– Connectors report failures 
– Custom failure detectors 
● Credentials 
– RFC 2617 
– SSL support
Thoughts for the Future 
● Connector multi-cast 
– UNION of result sets 
– More complex operations? 
● Extension interfaces 
– Improve extension support 
– Improve procedures support 
● Command-line interface 
– Focus on ease-of-use 
● Cloud support 
– OpenStack Trove 
– Amazon AWS 
– Amazon RDS 
● More protocols 
– MySQL-RPC Protocol? 
● More frameworks? 
– Django? 
● More connectors? 
– C/C++? 
– Fabric-unaware connectors? 
● More HA group types 
– DRBD 
– MySQL Cluster 
– Amazon RDS? 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Done! 
In Labs!
Thoughts for the Future 
● Automatic sharding 
– Single-query transactions? 
– Speculative execution? 
– Cross-shard queries? 
● Multiple shard mappings 
– Independent tables 
● Multi-way shard split 
– Efficient initial sharding 
– Better use of resources 
● Highly-available executor 
– Node failure stop execution 
● Execution restart on recovery 
– Replicated State Machine (RSM) 
● Paxos? 
● Raft? 
– Fail-over execution 
● Session consistency 
– We have a distributed database 
– It should look like a single database 
– Read monotonicity 
– Write monotonicity 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Reading for the Interested 
● MySQL Forum: Fabric, Sharding, HA, Utilities 
http://forums.mysql.com/list.php?144 
● MySQL Fabric Documentation 
http://dev.mysql.com/doc/mysql-utilities/1.4/en/fabric.html 
● Migrating From an Unsharded to a Sharded Setup 
http://vnwrites.blogspot.com/2013/09/mysqlfabric-sharding-migration.html 
● Configuring and running MySQL Fabric 
http://alfranio-distributed.blogspot.com/2014/03/mysqlfabric-installation.html 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Want to contribute? 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
● Check it 
– … and send us use-case and feature suggestions 
● Test it 
– … and send comments to the forum 
● Break it 
– … and send in bugs to http://bugs.mysql.com
Keeping in Touch 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 
Mats Kindahl 
Twitter: @mkindahl 
http://mysqlmusings.blogspot.com 
Alfranio Correia 
Twitter: @alfranio 
http://alfranio-distributed.blogspot.com 
Narayanan Venkateswaran 
Twitter: @vn_tweets 
http://vnwrites.blogspot.com 
Geert Vanderkelen 
Twitter: @geertjanvdk 
http://geert.vanderkelen.org
Safe Harbor Statement 
The preceding 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. | 
2014-10-02

Más contenido relacionado

La actualidad más candente

MySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesMySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesBernd Ocklin
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningSeveralnines
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptxIvan Ma
 
MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 UpdatesDave Stokes
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMatt Lord
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)Mario Beck
 
Mysql cluster introduction
Mysql cluster introductionMysql cluster introduction
Mysql cluster introductionAndrew Morgan
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQLTed Wennmark
 
MySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMatt Lord
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News Ted Wennmark
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability MattersMatt Lord
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMario Beck
 
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 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014Dave Stokes
 
Using MySQL in the Cloud
Using MySQL in the CloudUsing MySQL in the Cloud
Using MySQL in the CloudMatt Lord
 
2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015
2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015 2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015
2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015 Geir Høydalsvik
 

La actualidad más candente (20)

MySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesMySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion Queries
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance Tuning
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx
 
My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3
 
MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 Updates
 
MySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB ClustersMySQL High Availability -- InnoDB Clusters
MySQL High Availability -- InnoDB Clusters
 
MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)MySQL for Software-as-a-Service (SaaS)
MySQL for Software-as-a-Service (SaaS)
 
MySQL Fabric
MySQL FabricMySQL Fabric
MySQL Fabric
 
Mysql cluster introduction
Mysql cluster introductionMysql cluster introduction
Mysql cluster introduction
 
Introduction to MySQL
Introduction to MySQLIntroduction to MySQL
Introduction to MySQL
 
MySQL HA
MySQL HAMySQL HA
MySQL HA
 
MySQL Group Replication - an Overview
MySQL Group Replication - an OverviewMySQL Group Replication - an Overview
MySQL Group Replication - an Overview
 
MySQL 5.7 Replication News
MySQL 5.7 Replication News MySQL 5.7 Replication News
MySQL 5.7 Replication News
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
MySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB ClusterMySQL InnoDB Cluster and NDB Cluster
MySQL InnoDB Cluster and NDB Cluster
 
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 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014
 
MySQL Cluster
MySQL ClusterMySQL Cluster
MySQL Cluster
 
Using MySQL in the Cloud
Using MySQL in the CloudUsing MySQL in the Cloud
Using MySQL in the Cloud
 
2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015
2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015 2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015
2015: Whats New in MySQL 5.7, At Oracle Open World, November 3rd, 2015
 

Destacado

Pets vs. Cattle: The Elastic Cloud Story
Pets vs. Cattle: The Elastic Cloud StoryPets vs. Cattle: The Elastic Cloud Story
Pets vs. Cattle: The Elastic Cloud StoryRandy Bias
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターンyoku0825
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具yoku0825
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはyoku0825
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plusyoku0825
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうyoku0825
 

Destacado (7)

Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기Amazon Aurora 100% 활용하기
Amazon Aurora 100% 활용하기
 
Pets vs. Cattle: The Elastic Cloud Story
Pets vs. Cattle: The Elastic Cloud StoryPets vs. Cattle: The Elastic Cloud Story
Pets vs. Cattle: The Elastic Cloud Story
 
MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 
MySQLerの7つ道具
MySQLerの7つ道具MySQLerの7つ道具
MySQLerの7つ道具
 
MySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLはMySQL 5.7の次のMySQLは
MySQL 5.7の次のMySQLは
 
MySQLerの7つ道具 plus
MySQLerの7つ道具 plusMySQLerの7つ道具 plus
MySQLerの7つ道具 plus
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
 

Similar a Elastic MySQL Scaling with OpenStack

MySQL High Availability - Managing Farms of Distributed Servers
MySQL High Availability - Managing Farms of Distributed ServersMySQL High Availability - Managing Farms of Distributed Servers
MySQL High Availability - Managing Farms of Distributed ServersNarayanan Venkateswaran
 
MySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for MySQLMySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for MySQLTed 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
 
MySQL London Tech Tour March 2015 - MySQL Fabric
MySQL London Tech Tour March 2015 - MySQL FabricMySQL London Tech Tour March 2015 - MySQL Fabric
MySQL London Tech Tour March 2015 - MySQL FabricMark Swarbrick
 
MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014MySQL & Oracle Linux Keynote at Open Source India 2014
MySQL & Oracle Linux Keynote at Open Source India 2014Sanjay Manwani
 
20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech Updates20140722 Taiwan MySQL User Group Meeting Tech Updates
20140722 Taiwan MySQL User Group Meeting Tech UpdatesRyusuke Kajiyama
 
2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdf2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdfHaiping Li
 
My sql fabric webinar v1.1
My sql fabric webinar v1.1My sql fabric webinar v1.1
My sql fabric webinar v1.1Ricky Setyawan
 
Netherlands Tech Tour 02 - MySQL Fabric
Netherlands Tech Tour 02 -   MySQL FabricNetherlands Tech Tour 02 -   MySQL Fabric
Netherlands Tech Tour 02 - MySQL FabricMark Swarbrick
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsMario Beck
 
My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...GeneXus
 
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
 Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support Mysql User Camp : 20-June-14 : Mysql New features and NoSQL Support
Mysql User Camp : 20-June-14 : Mysql New features and NoSQL SupportMysql User Camp
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMark Swarbrick
 
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4Frazer Clement
 
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014Manuel Contreras
 
Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Krunal Jain
 
A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014A practical introduction to Oracle NoSQL Database - OOW2014
A practical introduction to Oracle NoSQL Database - OOW2014Anuj Sahni
 
MySQL High Availability with Replication New Features
MySQL High Availability with Replication New FeaturesMySQL High Availability with Replication New Features
MySQL High Availability with Replication New FeaturesShivji Kumar Jha
 
Managing Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with PuppetManaging Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with Puppetglynnfoster
 
MySQL Enterprise Portfolio
MySQL Enterprise PortfolioMySQL Enterprise Portfolio
MySQL Enterprise PortfolioAbel Flórez
 

Similar a Elastic MySQL Scaling with OpenStack (20)

MySQL High Availability - Managing Farms of Distributed Servers
MySQL High Availability - Managing Farms of Distributed ServersMySQL High Availability - Managing Farms of Distributed Servers
MySQL High Availability - Managing Farms of Distributed Servers
 
MySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for MySQLMySQL Fabric - High Availability & Automated Sharding for MySQL
MySQL Fabric - High Availability & Automated Sharding for 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)
 
MySQL London Tech Tour March 2015 - MySQL Fabric
MySQL London Tech Tour March 2015 - MySQL FabricMySQL London Tech Tour March 2015 - MySQL Fabric
MySQL London Tech Tour March 2015 - MySQL Fabric
 
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
 
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
 
2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdf2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdf
 
My sql fabric webinar v1.1
My sql fabric webinar v1.1My sql fabric webinar v1.1
My sql fabric webinar v1.1
 
Netherlands Tech Tour 02 - MySQL Fabric
Netherlands Tech Tour 02 -   MySQL FabricNetherlands Tech Tour 02 -   MySQL Fabric
Netherlands Tech Tour 02 - MySQL Fabric
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...My sql en la nube conoce las mejores prácticas en administración y operación_...
My sql en la nube conoce las mejores prácticas en administración y operación_...
 
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 Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQL
 
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
200 million qps on commodity hardware : Getting started with MySQL Cluster 7.4
 
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
Oracle MySQL Tutorial -- MySQL NoSQL Cloud Buenos Aires Nov, 13 2014
 
Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)Introduction to OpenStack (Juno)
Introduction to OpenStack (Juno)
 
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
 
MySQL High Availability with Replication New Features
MySQL High Availability with Replication New FeaturesMySQL High Availability with Replication New Features
MySQL High Availability with Replication New Features
 
Managing Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with PuppetManaging Oracle Solaris Systems with Puppet
Managing Oracle Solaris Systems with Puppet
 
MySQL Enterprise Portfolio
MySQL Enterprise PortfolioMySQL Enterprise Portfolio
MySQL Enterprise Portfolio
 

Más de Mats Kindahl

MySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFS
MySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFSMySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFS
MySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFSMats Kindahl
 
MySQL Sharding: Tools and Best Practices for Horizontal Scaling
MySQL Sharding: Tools and Best Practices for Horizontal ScalingMySQL Sharding: Tools and Best Practices for Horizontal Scaling
MySQL Sharding: Tools and Best Practices for Horizontal ScalingMats Kindahl
 
Replication Tips & Trick for SMUG
Replication Tips & Trick for SMUGReplication Tips & Trick for SMUG
Replication Tips & Trick for SMUGMats Kindahl
 
Sharding using MySQL and PHP
Sharding using MySQL and PHPSharding using MySQL and PHP
Sharding using MySQL and PHPMats Kindahl
 
Replication Tips & Tricks
Replication Tips & TricksReplication Tips & Tricks
Replication Tips & TricksMats Kindahl
 
MySQL Binary Log API Presentation - OSCON 2011
MySQL Binary Log API Presentation - OSCON 2011MySQL Binary Log API Presentation - OSCON 2011
MySQL Binary Log API Presentation - OSCON 2011Mats Kindahl
 
Mysteries of the binary log
Mysteries of the binary logMysteries of the binary log
Mysteries of the binary logMats Kindahl
 

Más de Mats Kindahl (8)

Why rust?
Why rust?Why rust?
Why rust?
 
MySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFS
MySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFSMySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFS
MySQL Applier for Apache Hadoop: Real-Time Event Streaming to HDFS
 
MySQL Sharding: Tools and Best Practices for Horizontal Scaling
MySQL Sharding: Tools and Best Practices for Horizontal ScalingMySQL Sharding: Tools and Best Practices for Horizontal Scaling
MySQL Sharding: Tools and Best Practices for Horizontal Scaling
 
Replication Tips & Trick for SMUG
Replication Tips & Trick for SMUGReplication Tips & Trick for SMUG
Replication Tips & Trick for SMUG
 
Sharding using MySQL and PHP
Sharding using MySQL and PHPSharding using MySQL and PHP
Sharding using MySQL and PHP
 
Replication Tips & Tricks
Replication Tips & TricksReplication Tips & Tricks
Replication Tips & Tricks
 
MySQL Binary Log API Presentation - OSCON 2011
MySQL Binary Log API Presentation - OSCON 2011MySQL Binary Log API Presentation - OSCON 2011
MySQL Binary Log API Presentation - OSCON 2011
 
Mysteries of the binary log
Mysteries of the binary logMysteries of the binary log
Mysteries of the binary log
 

Último

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 

Último (20)

What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 

Elastic MySQL Scaling with OpenStack

  • 1. Elastic Scalability in MySQL Fabric using OpenStack Mats Kindahl Senior Principal Software Developer Narayanan Venkateswaran Principal Software Developer Copyright © 2014, Oracle and/or its affiliates. AAllll rriigghhttss rreesseerrvveedd.. || Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
  • 2. Safe Harbor 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. | 2014-10-02
  • 3. Session Outline 1 Elasticity in Computing 2 Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | 3 4 5 OpenStack Introduction to MySQL Fabric Elasticity in MySQL Fabric using OpenStack Closing Remarks & Thoughts for the Future
  • 4. Elasticity in Computing Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 5. What is Elasticity? “[Elasticity] is defined as the degree to which a system is able to adapt to workload changes by provisioning and deprovisioning resources in an autonomic manner” Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 6. Elasticity from our Perspective ● Managing read load – Read load increases – Problem: Read servers overloaded – Solution: Add more read servers ● Managing shards – A shard is hot or full – Problem: slower queries – Solution: Split the shard • Managing server failures – A server in a group fails – Slave is promoted – Problem: Availability is affected – Solution: Add replacement node Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 7. OpenStack Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 8. What is OpenStack? “OpenStack is a free and open-source software cloud computing software platform” What is that? Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 9. Cloud Computing According to NIST ● Resouce pooling – Resources are assigned and reassigned based on customer demand ● Broad network access – Capabilities are accessed over the network through standard mechanisms ● Measured service ● On-demand self-service – Customer can unilaterally provision computing capabilities Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | ● Rapid elasticity – Capabilities can be elastically provisioned and released
  • 10. OpenStack Deployment Example ● Controller Node – Manages Identities – Manages Images – Manages Block Storage Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | ● Compute Node – (Virtual) machine host – Contain hypervisor – Spawn and destroy virtual machines Controller Compute (VM Host)
  • 11. Introduction to MySQL Fabric Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 12. What is MySQL Fabric? An extensible and easy-to-use framework for managing a farm of MySQL servers supporting high-availability and sharding Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 13. What does all that mean? ● Management System – Manages a MySQL Farm – Distributed Framework Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | ● Framework – Procedure execution – State store – Transaction Routing ● Extensible – Extensions are first-class – High-availability groups – “Semi-automatic” sharding ● Written in Python ● Latest Release 1.5.2 GA ● Open Source – You can participate – Suggest features – Report bugs – Contribute patches ● MySQL 5.6 is focus
  • 14. MySQL Fabric: Goals & Features ● Decision logic in connector – Eliminates network hop – Reduce network load – Eliminate single point of failure – Scale naturally: not a bottleneck ● Connector API extensions – Support transactions – Support full SQL ● Load balancing – Read-write split – Weighted round-robin ● Cloud integration – Support elasticity – Servers on-demand ● Multi-table sharding ● Sharding functions – Range – (Consistent) hash ● Shard operations – Shard move – Shard split ● Global updates – Global tables – Schema updates Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 15. A Brief History of MySQL Fabric ● MySQL Fabric 1.4 – First public release Sept 2013 – MySQL Fabric 1.4.3 GA May 2014 – High-availability groups – Failure detection – Load balancing – Range and hash sharding – Shard move and split – Connector/J support – Connector/PHP support – Connector/Python support – Doctrine – Hibernate ● MySQL Fabric 1.5 – MySQL Fabric 1.5.1 RC in Aug 2014 – MySQL Fabric 1.5.2 GA in Sept 2014 – Cloud Integration (WL#6432) – MySQL-RPC support (WL#7600) – Connector/NET support – Labs: C API Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 16. Birds-eye View Application SQL Connector Connector Connector High Availability Groups XML-RPC MySQL-RPC SQL Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Operator MySQL Fabric Node Database Servers
  • 17. High-Level Components ● Fabric-aware Connectors – Python, PHP, Java, .NET, C – Enhanced Connector API ● MySQL Fabric Node – Manage information about farm – Provide status information – Execute procedures ● MySQL Servers – Organized in high-availability groups – Handling application data Application Connector High Availability Group Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Connector Connector MySQL Fabric Node
  • 18. MySQL Fabric Node Architecture ? Connector Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | MySQL MySQL Fabric Framework Executor State Store (Persister) Sh ? HA AMQP MySQL-RPC XML-RPC Connector Connector Protocols Extensions Backing Store
  • 19. High-Availability Concepts Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | ● Redundancy – Duplicate components ● Monitoring – Detecting failing components – Monitor load ● Procedures – Activate replacements – Distribute load
  • 20. MySQL Fabric and the Cloud Using OpenStack for Elasticity Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 21. Server Providers ● Server Creation – Create new server instances ● Internal Memory ● Disk Size ● Number of CPUs – Configured for the purpose ● GTID enabled ● Binary log enabled ● Correct engines enabled ● Server Filling – Fill instance with data ● Clone from an existing server ● Restore a backup – Set up replication ● Point secondary to primary – Custom filling operation Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Already handled in MySQL Fabric MySQL Fabric + Cloud
  • 22. Server Providers ● A “server factory” – Abstract concept – Extension interface added to MySQL Fabric ● Possible to support multiple providers – OpenStack Nova (in MySQL Fabric 1.5) – OpenStack Trove – Amazon AWS – Amazon RDS – Custom hardware registry Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 23. MySQL Fabric and OpenStack MySQL Fabric Node OpenStack Instance Application High-Availability Groups / Shards Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 24. Adding a new provider to MySQL Fabric ● Register a provider with MySQL Fabric ● Provide API address and user credentials ● Provider type OPENSTACK spawns new virtual machines mysqlfabric provider register my_stack mats xyzzy http://example.net:5000/v2.0/ my_project --provider_type=OPENSTACK Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 25. Creating a new server from MySQL Fabric ● Create a new machine using the registered provider ● Provide an image to use for the machine – You have to set up the image beforehand ● Provide a cloud-init script to set up MySQL server mysqlfabric machine create my_stack --image name=”Oracle Linux 7 amd64” --flavor name=m1.small --userdata=mysql-oracle-linux-init Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 26. Creating a snapshot from MySQL Fabric ● Create a snapshot of an existing machine ● Return an provider-internal name of the snapshot ● Can be used to create your “golden image” mysqlfabric snapshot create my_stack 903476b7-db4d-4d63-84e6-f79c7d0cec31 Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 27. Elasticity using providers ● Read load increases – Spawn new read servers – Add them to the group ● Shard is overloaded – Spawn new servers for a shard – Create a new shard – Split existing shard ● Server is lost – High-availability is reduced – Spawn new server – Add it to the group Can we automate this? Yes, we can! Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 28. MySQL Fabric executor Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | ● Event driven – Events will trigger execution of procedures – Procedures can trigger events themselves – Each step of a procedure is called a job ● Procedures – Written in Python – Interacts with servers – Write state changes into backing store – Lock manager for conflict resolution ● Conservative two-phase locking strategy ● Avoid deadlocks Queue Backing Store Events
  • 29. Automatically adding a server to a group ● Register procedure for event – @on_event decorator – Accept event to register for ● Fetch the group the server belonged to ● Fetch a new server from the provider ● Add the server to the group @on_event(SERVER_LOST) def _add_server(group_id, server_uuid): group = Group.fetch(group_id) machines = PROVIDER.create_machines( parameters ) server = MySQLServer( server_uuid, address ) MySQLServer.add(server) group.add(server) _configure_as_slave(server) Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 30. MySQL Fabric procedure execution ● Before starting a job: – Aquire the necessary locks – Checkpoint execution state in backing store – Start a transaction on the backing store ● When executing job: – Make updates to backing store inside transaction – Interact with servers ● After executing a job: – Mark job completed in internal log – Commit transaction on backing store Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Queue Backing Store Events What about crashes?
  • 31. MySQL Fabric executor recovery ● Two types of jobs: – Idempotent: Restart the job – Not idempotent: Execute compensation ● Recovery procedure – Start the executor – Collect unfinished checkpoints – Execute compensation activity for each job associated with the checkpoint … if there is one – Re-schedule each job Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Queue Backing Store Events
  • 32. Defining an compensation procedure ● Use the @undo decorator ● Compensating action – Search for the machine by UUID – Give it back to provider ● Compensating actions need to be idempotent @_add_server.undo def _undo_add_srv(group_id, server_uuid): meta_filters = { 'mysql­fabric­machine­group­uuid': server_uuid } machines = MANAGER.search_machines( {}, meta_filters ) for machine in machines: MANAGER.destroy_machine( machine.uuid ) Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 33. Example using Rackspace Provider mysqlfabric provider register my_rackspace mats xyzzy https://lon.identity.api.rackspacecloud.com/v2.0/ ­­tenant accountnumber ­­extra auth_system=rackspace ­­provider_ type OPENSTACK mysqlfabric machine create my_rackspace ­­image id=8c964b3f­8c15­4966­86ee­7a55824df564 ­­flavor name="512MB Standard Instance" Note authentication plugins support for (coming) Require Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 34. Experiments with Amazon AWS mysqlfabric provider register my_amazon AKIAIOSFODNN7EXAMPLE wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY eu­west­1 ­­provider_ type=AMAZON mysqlfabric machine create my_amazon ­­image image­id= ami­892fe1fe ­­flavor name=t2.micro Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Note! Not in MySQL Fabric 1.5 Will be on MySQL Labs
  • 35. Experiments with OpenStack Trove mysqlfabric provider register my_trove mats xyzzy https://lon.identity.api.rackspacecloud.com/v2.0/ ­­tenant 123456 ­­extra service_type=rax:database ­­provider_ type=OPENSTACK.DATABASE mysqlfabric server create my_trove ­­flavor name="512MB Instance" ­­size 1 ­­users mats:xyzzy ­­databases employee ­­datastore MySQL ­­datastore_ version 5.6 Note! Not in MySQL Fabric 1.5 Will be on MySQL Labs Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 36. Closing remarks Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 37. What do we have now? ● High-availability – Group Concept – Slave promotion Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | ● Sharding – Range and hash sharding – Shard move and shard split ● Connector APIs – Transaction properties – “Virtual” connections ● Cloud integration – “Server providers” – OpenStack Nova ● Enhanced connectors – Connector/Python – Connector/PHP – Connector/J – Connector/NET ● Interfaces – Command-line – XML-RPC – MySQL-RPC ● Distributed failure detector – Connectors report failures – Custom failure detectors ● Credentials – RFC 2617 – SSL support
  • 38. Thoughts for the Future ● Connector multi-cast – UNION of result sets – More complex operations? ● Extension interfaces – Improve extension support – Improve procedures support ● Command-line interface – Focus on ease-of-use ● Cloud support – OpenStack Trove – Amazon AWS – Amazon RDS ● More protocols – MySQL-RPC Protocol? ● More frameworks? – Django? ● More connectors? – C/C++? – Fabric-unaware connectors? ● More HA group types – DRBD – MySQL Cluster – Amazon RDS? Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Done! In Labs!
  • 39. Thoughts for the Future ● Automatic sharding – Single-query transactions? – Speculative execution? – Cross-shard queries? ● Multiple shard mappings – Independent tables ● Multi-way shard split – Efficient initial sharding – Better use of resources ● Highly-available executor – Node failure stop execution ● Execution restart on recovery – Replicated State Machine (RSM) ● Paxos? ● Raft? – Fail-over execution ● Session consistency – We have a distributed database – It should look like a single database – Read monotonicity – Write monotonicity Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 40. Reading for the Interested ● MySQL Forum: Fabric, Sharding, HA, Utilities http://forums.mysql.com/list.php?144 ● MySQL Fabric Documentation http://dev.mysql.com/doc/mysql-utilities/1.4/en/fabric.html ● Migrating From an Unsharded to a Sharded Setup http://vnwrites.blogspot.com/2013/09/mysqlfabric-sharding-migration.html ● Configuring and running MySQL Fabric http://alfranio-distributed.blogspot.com/2014/03/mysqlfabric-installation.html Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 41. Want to contribute? Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | ● Check it – … and send us use-case and feature suggestions ● Test it – … and send comments to the forum ● Break it – … and send in bugs to http://bugs.mysql.com
  • 42. Keeping in Touch Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. | Mats Kindahl Twitter: @mkindahl http://mysqlmusings.blogspot.com Alfranio Correia Twitter: @alfranio http://alfranio-distributed.blogspot.com Narayanan Venkateswaran Twitter: @vn_tweets http://vnwrites.blogspot.com Geert Vanderkelen Twitter: @geertjanvdk http://geert.vanderkelen.org
  • 43. Safe Harbor Statement The preceding 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. | 2014-10-02