SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2
MySQL High Availability:
Managing Farms of Distributed Servers
(MySQL Fabric)
Mats Kindahl
Alfranio Correia
Narayanan Venkateswaran
3 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
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 decision. The development,
release, and timing of any features or functionality described for Oracle’s
products remains at the sole discretion of Oracle.
Safe Harbor Statement
4 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Agenda
 MySQL High Availability Options
 MySQL Fabric – New kid on the block
 MySQL Fabric – Failure detection and Failover
 MySQL Fabric-aware connectors
 MySQL Fabric – Playing with the new kid
5 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL High Availability Options
6 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
What Causes Downtime?
 System Failures
– Server faults
– Software bugs or crashes
 Physical Disasters
 Scheduled Maintenance
 User Errors
7 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Effect and Impact
 Effect:
– Service Unavailability
– Bad response time
 Impact:
– Revenue loss
– Negative impact on customer relationships
– Reduced employee productivity
– Regulatory issues
8 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Another Amazon Outage Exposes the Cloud's Dark Lining
By Brad Stone - Bloomberg Businessweek
“The entire incident lasted all of 49 minutes...”
9 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Causes of Downtime in Production MySQL Servers
By Baron Schwartz – Percona
“It is ironic but true that high-availability tools can cause
downtime.”
10 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Failures are inevitable so design your
systems taking this into account.
11 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
High Availability Solutions
 Primary-Secondary
 Shared Nothing Clusters
 Tightly-coupled Clusters
12 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Simple to configure
 Different Platforms
 Configured over LAN or WAN
 No Shared Storage or Virtual
IP required
Primary-Secondary
Characteristics
MySQL Replication in 5.6
Master
Slave
Slave
Slave
Slave
13 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Asynchronous Replication: risk
of data loss (unless using
semi-sync)
 Performance overhead to
master
 No automatic failover or
switchover (unless using
MySQL Utilities)
Primary-Secondary
Characteristics
MySQL Replication in 5.6
Master
Slave
Slave
Slave
Slave
14 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Multi-master architecture
 No single point of failure
 Support for SQL and NoSQL
Interfaces
 Synchronous replication
Shared Nothing Clusters
Characteristics
MySQL Cluster
MySQL Cluster Data Nodes MySQL Servers
15 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Tightly Coupled Clusters
 Provide Active/Passive Solution
 Examples:
– DRBD
– WSFC
– Solaris Clustering
– Oracle Virtual Machines
16 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Linux Kernel module
integrated into Oracle Linux
 Synchronous replication
 Only one MySQL operational
Distributed Replicated Block Device
Characteristics
DRBD (Regular Operation)
Pacemaker
MySQL
DRBD
MySQL
DRBD
Corosync
ServicesCluster
17 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Cluster Management System
required
 Virtual IP migration
Distributed Replicated Block Device
Characteristics
DRBD (Failover)
Pacemaker
MySQL
DRBD
MySQL
DRBD
Corosync
ServicesCluster
18 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Cluster Management System
required
 Virtual IP migration
Distributed Replicated Block Device
Characteristics
DRBD (Failover)
Pacemaker
MySQL
DRBD
MySQL
DRBD
Corosync
ServicesCluster
19 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Required:
– Windows Clustering
– Shared Storage
 Only one MySQL Operational
 Virutal IP migration
 Shared storage used to vote
Shared Storage
Characteristics
Windows Server Failover Clustering (Regular Operation)
SharedStorageServers
MySQL
Windows Clustering
MySQL
Windows Clustering
Services
Vote
Data
Binary
Log
20 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL Fabric – New kid on the block
21 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Distributed framework
 Extensions are first-class Citizens
 Supported by a variety of connectors
 Fault-tolerant solution
 You can suggest features, report bugs and
contribute patches
MySQL Fabric
 Still early alpha, long journey ahead
 Farms of MySQL 5.6 Servers
22 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Support for Primary-
Secondary
 Focus on MySQL 5.6 and
later
 Written in Python
Birds-eye View
Characteristics
High Availability Groups
MySQL Fabric Application
XML-RPC
SQL
Key Components
23 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Fabric-aware connectors:
– Route Transactions
– Cache Information
– Currently Python, Java,
PHP
Birds-eye View
Characteristics
High Availability Groups
MySQL Fabric Application
XML-RPC
SQL
Fabric-aware Connectors
24 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 XML-RPC is widely available
 Extensible Framework
 Failures taken into account
Architecture
Characteristics
MySQL
MySQL Fabric
Framework
Executor
State Store
(Persister)
Sh
?HA
MySQLAMQP XML-RPC
??
Extensions
Backing Store
Protocols
25 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL Fabric: Prerequisites
 MySQL Servers 5.6.10 (or later):
– Backing Store
– Managed Servers
 Python 2.6 or 2.7
 MySQL Utilities 1.4.0
– Available at labs (http://labs.mysql.com)
26 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL Fabric – Failure Detection
and Failover
27 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Fabric keeps information on
groups
 Application defines the group
that it will use
 Connection failures regularly
propagated
HA Overview
Characteristics
High Availability GroupMySQL Fabric
ApplicationOperator
28 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Failure Detection and Failover
 Current Status:
– Simple failure detector/recovery per group
 Considering:
– Make connectors report failures
– Support external/custom failure detectors
– Improve failover/switchover algorithm
– Extend servers/system to avoid the split-brain problem
29 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Enabled per group
Failure Detection
group = Group.fetch(self.__group_id)
for server in group.servers():
  if server.is_alive():
    continue
  if group.master == server.uuid:
    trigger("FAIL_OVER", [], self.__group_id)
  else:
    trigger("SERVER_LOST", [], self.__group_id, 
            server.uuid)
  server.status = MySQLServer.FAULTY
Failover if master has gone
Notification if not master
Server marked as faulty
30 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Failover
Master
Slave
Slave
Slave
Slave
T1
T2
T3 T1
T2
T3
T1
T1
T2
T1
Master fails
31 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Failover
Master
Slave
Slave
Slave
Slave
T1
T2
T3 T1
T2
T3
T1
T1
T2
T1
Choosing a candidate
32 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Failover
Master
Slave
Slave
Slave
Slave
T1
T2
T3 T1
T2
T3
T1
T1
T2
T1
Pointing to the new master
33 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Making Fabric Itself HA
 Current Status:
– Fabric can automatically resume on-going activities
– Backing store is not left in an inconsistent state
– Information is cached in the connector
 Considering:
– Replicated State Machine among Fabric nodes
– Use MySQL Cluster as backing store
34 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Crash-safe Procedures
MySQL Fabric
Framework
State Store
(Persister)
Sh
HA
MySQLAMQP XML-RPC
MySQL
Executor
Procedure. Step 1
Procedure. Step 2
Procedure. Step 3
Regular Execution
35 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Crash-safe Procedures
MySQL Fabric
Framework
State Store
(Persister)
Sh
HA
MySQLAMQP XML-RPC
MySQL
Executor
Procedure. Step 1
Procedure. Step 2
Procedure. Step 3
Failover/Recovery Execution
36 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Crash-safe Procedures
MySQL Fabric
Framework
State Store
(Persister)
Sh
HA
MySQLAMQP XML-RPC
MySQL
Executor
Procedure. Step 1
Procedure. Step 2
Procedure. Step 3
Resuming Execution
37 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Writing a procedure
@_events.on_event(STEP_1)
def do_something(group_id):
    _do_it(group_id)
    _events.trigger_within_procedure(STEP_2, group_id)
    )
@do_something.undo
def undo_something(group_id):
    _undo_it(group_id)
Trigger the next step
Compensate Operation
Transactional Context
38 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL Fabric: Using MySQL Cluster
MySQL Fabric
Framework
State Store
(Persister)
Sh
HA
MySQLAMQP XML-RPC
MySQL Fabric
Framework
State Store
(Persister)
Sh
HA
MySQLAMQP XML-RPC
MySQL Cluster
Executor Executor
39 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL
MySQL Fabric
Framework
Executor
State Store
(Persister)
Sh
HA
MySQLAMQP XML-RPC
MySQL
tore
ter)
Sh
HA
L-RPC
MySQ
Fram
Executor
MAMQP
MySQL
MySQL Fabric
Framework
Executor
State Store
(Persister)
Sh
HA
MySQLAMQP XML-RPC
RSMRSM
MySQL Fabric: Using Replicated State Machine
40 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL Fabric-aware Connectors
41 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Use MySQLFabricConnection
Writing an application
import mysql.connector.fabric as connector
conn = connector.MySQLFabricConnection(
    fabric={"host": "fabric.example.com", "port" : 8080},
    user='mats', passwd= 'passwd', database="employees")
conn.set_property(group='YYZ')
cur = conn.cursor()
Connecting to a Group
Define a group
Get a cursor to master in YYZ
42 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Connectors cannot hide failures
Multi-statement transaction
43 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Connectors cannot hide failures
Single-statement transaction
44 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Writing an application
try:
  conn.start_transaction()
  conn.execute('INSERT...')
  conn.execute('UPDATE...')
  self.__cnx.commit()
except InterfaceError as error:
  cur = conn.cursor()
Handling Connection Failures
Connectors cannot safely retry or
reconnect
45 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Plan your application to retry after a
failure.
46 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Good practices
 Handle session information in the retry logic:
– Temporary tables
– Session variables
– Prepared statements
 Check the wait_timeout server's property
 Do not set connection_timeout
47 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Blogs
 http://alfranio-distributed.blogspot.com/2013/09/writing-fault-tolerant-database.html
 http://alfranio-distributed.blogspot.com/2013/09/tips-to-build-fault-tolerant-database.html
Documents
 http://miscalculation/why-mysql/white-papers/mysql-guide-to-high-availability-solutions/
 http://dev.mysql.com/doc/workbench/en/mysql-utilities.html
Code
 MySQL Fabric available at http://labs.mysql.com/
References
48 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
MySQL Fabric – Playing with the
new kid
49 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Use MTR
 Do it manually, use sandbox,
whatever you like
Starting MySQL Servers
Quick Setup
rpl_fabric_gtid.cnf:
!include ../my.cnf
[mysqld.n]
report­host=localhost
log­slave­updates
innodb
gtid­mode=on
enforce­gtid­consistency
master­info­repository=TABLE
­­source include/have_innodb.inc
rpl_fabric_gtid.test:
50 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Python 2.6 or 2.7
 MySQL Utilities 1.4.0
 Check configuration file
MySQL Fabric Installation
Quick Setup fabric.cfg:
[storage]
address = localhost:3306
user = fabric
password = 
database = fabric
connection_timeout = 6
[protocol.xmlrpc]
address = localhost:8080
threads = 5
url = file:///var/log/fabric.log
51 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
 Configure the state store
 Start fabric
 Manage your groups
Run MySQL Fabric
Quick Setup
mysqlfabric manage setup
mysqlfabric manage start
Terminal 1:
mysqlfabric list­commands
mysqlfabric group create YYZ
mysqlfabric group add localhost:1300
root ''
Terminal 2:
52 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Thoughts for the Future
●
Connector multi-cast
●
Scatter-gather
●
Internal interfaces
●
Improve extension support
●
Improve procedures support
●
Command-line interface
●
Improving usability
●
Focus on ease-of-use
●
More protocols
●
MySQL-RPC Protocol?
●
AMQP?
●
More frameworks?
●
More HA group types
●
DRBD
●
MySQL Cluster
●
Fabric-unaware connectors?
53 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Thoughts for the Future
●
“More transparent” sharding
●
Single-query transactions
●
Cross-shard joins is a problem
●
Multiple shard mappings
●
Independent tables
●
Multi-way shard split
●
Efficient initial sharding
●
Better use of resources
●
High-availability executor
●
Node failure stop execution
●
Replicated State Machine
●
Fail over to other Fabric node
●
Distributed failure detector
●
Connectors report failures
●
Custom failure detectors
54 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Thank you!
Copyright © 2013, Oracle and/or its affiliates. All rights reserved.55
Your Feedback is Highly Appreciated!
http://forums.mysql.com/list.php?144

Weitere ähnliche Inhalte

Was ist angesagt?

MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!Vitor Oliveira
 
Fine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceFine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceVitor Oliveira
 
MySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware companyMySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware companyContinuent
 
PoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HAPoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HAUlf Wendel
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningSeveralnines
 
High Availability with MariaDB Enterprise
High Availability with MariaDB EnterpriseHigh Availability with MariaDB Enterprise
High Availability with MariaDB EnterpriseMariaDB Corporation
 
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11Kenny Gryp
 
MySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & DemoMySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & DemoKeith Hollman
 
MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4
MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4
MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4Ulf Wendel
 
MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 UpdatesDave Stokes
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10Kenny Gryp
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability MattersMatt Lord
 
MySQL 5.7 Fabric: Introduction to High Availability and Sharding
MySQL 5.7 Fabric: Introduction to High Availability and Sharding MySQL 5.7 Fabric: Introduction to High Availability and Sharding
MySQL 5.7 Fabric: Introduction to High Availability and Sharding Ulf Wendel
 
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 Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group ReplicationUlf Wendel
 
MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014Dave Stokes
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Keith Hollman
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterKenny Gryp
 

Was ist angesagt? (20)

MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!MySQL Replication Performance Tuning for Fun and Profit!
MySQL Replication Performance Tuning for Fun and Profit!
 
Fine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceFine-tuning Group Replication for Performance
Fine-tuning Group Replication for Performance
 
MySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware companyMySQL High Availability and Disaster Recovery with Continuent, a VMware company
MySQL High Availability and Disaster Recovery with Continuent, a VMware company
 
PoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HAPoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HA
 
Conference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance TuningConference slides: MySQL Cluster Performance Tuning
Conference slides: MySQL Cluster Performance Tuning
 
High Availability with MariaDB Enterprise
High Availability with MariaDB EnterpriseHigh Availability with MariaDB Enterprise
High Availability with MariaDB Enterprise
 
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
MySQL Database Architectures - MySQL InnoDB ClusterSet 2021-11
 
MySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & DemoMySQL InnoDB Cluster HA Overview & Demo
MySQL InnoDB Cluster HA Overview & Demo
 
MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4
MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4
MySQL? Load? Clustering! Balancing! PECL/mysqlnd_ms 1.4
 
MySQL 5.6 Updates
MySQL 5.6 UpdatesMySQL 5.6 Updates
MySQL 5.6 Updates
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
MySQL 5.7 Fabric: Introduction to High Availability and Sharding
MySQL 5.7 Fabric: Introduction to High Availability and Sharding MySQL 5.7 Fabric: Introduction to High Availability and Sharding
MySQL 5.7 Fabric: Introduction to High Availability and Sharding
 
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 Group Replication
MySQL Group ReplicationMySQL Group Replication
MySQL Group Replication
 
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.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014MySQL 5.7 -- SCaLE Feb 2014
MySQL 5.7 -- SCaLE Feb 2014
 
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
Moodle Moot Spain: Moodle Available and Scalable with MySQL HA - InnoDB Clust...
 
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & ClusterMySQL Database Architectures - InnoDB ReplicaSet & Cluster
MySQL Database Architectures - InnoDB ReplicaSet & Cluster
 

Ähnlich wie MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)

My sql fabric webinar tw2
My sql fabric webinar tw2My sql fabric webinar tw2
My sql fabric webinar tw2Ivan Tu
 
My sql fabric webinar v1.1
My sql fabric webinar v1.1My sql fabric webinar v1.1
My sql fabric webinar v1.1Ricky Setyawan
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013Andrew Morgan
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise MonitorTed Wennmark
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMiguel Araújo
 
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA Suite
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA SuiteBest Practices for Building an Enterprise SOA Infrastructure on Oracle SOA Suite
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA SuiteMatt Wright
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!Frederic Descamps
 
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014Dave Stokes
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise MonitorMark Swarbrick
 
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMark Swarbrick
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !Frederic Descamps
 
How WebLogic 12c Can Boost Your Productivity
How WebLogic 12c Can Boost Your ProductivityHow WebLogic 12c Can Boost Your Productivity
How WebLogic 12c Can Boost Your ProductivityBruno Borges
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & designMark Swarbrick
 
Oracle RAC 12c Best Practices with Appendices DOAG2013
Oracle RAC 12c Best Practices with Appendices DOAG2013Oracle RAC 12c Best Practices with Appendices DOAG2013
Oracle RAC 12c Best Practices with Appendices DOAG2013Markus Michalewicz
 
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014Dave Stokes
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfMiguel Araújo
 
Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]
Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]
Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]Markus Michalewicz
 

Ähnlich wie MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric) (20)

My sql fabric webinar tw2
My sql fabric webinar tw2My sql fabric webinar tw2
My sql fabric webinar tw2
 
Cloud based database
Cloud based databaseCloud based database
Cloud based database
 
My sql fabric webinar v1.1
My sql fabric webinar v1.1My sql fabric webinar v1.1
My sql fabric webinar v1.1
 
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
NoSQL & SQL - Best of both worlds - BarCamp Berkshire 2013
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
 
MySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB ClustersMySQL 8 High Availability with InnoDB Clusters
MySQL 8 High Availability with InnoDB Clusters
 
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA Suite
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA SuiteBest Practices for Building an Enterprise SOA Infrastructure on Oracle SOA Suite
Best Practices for Building an Enterprise SOA Infrastructure on Oracle SOA Suite
 
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!MySQL Innovation Day Chicago  - MySQL HA So Easy : That's insane !!
MySQL Innovation Day Chicago - MySQL HA So Easy : That's insane !!
 
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
Scaling MySQl 1 to N Servers -- Los Angelese MySQL User Group Feb 2014
 
MySQL Enterprise Monitor
MySQL Enterprise MonitorMySQL Enterprise Monitor
MySQL Enterprise Monitor
 
MySQL Tech Tour Nov, 2013
MySQL Tech Tour Nov, 2013MySQL Tech Tour Nov, 2013
MySQL Tech Tour Nov, 2013
 
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisationMySQL Webinar 2/4 Performance tuning, hardware, optimisation
MySQL Webinar 2/4 Performance tuning, hardware, optimisation
 
Oracle RAC 12c Overview
Oracle RAC 12c OverviewOracle RAC 12c Overview
Oracle RAC 12c Overview
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
 
How WebLogic 12c Can Boost Your Productivity
How WebLogic 12c Can Boost Your ProductivityHow WebLogic 12c Can Boost Your Productivity
How WebLogic 12c Can Boost Your Productivity
 
1 architecture & design
1   architecture & design1   architecture & design
1 architecture & design
 
Oracle RAC 12c Best Practices with Appendices DOAG2013
Oracle RAC 12c Best Practices with Appendices DOAG2013Oracle RAC 12c Best Practices with Appendices DOAG2013
Oracle RAC 12c Best Practices with Appendices DOAG2013
 
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
MySQL 5.7 New Features to Exploit -- PHPTek/Chicago MySQL User Group May 2014
 
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdfDeep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
Deep Dive into MySQL InnoDB Cluster Read Scale-out Capabilities.pdf
 
Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]
Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]
Oracle RAC 12c Best Practices Sanger OOW13 [CON8805]
 

Kürzlich hochgeladen

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Kürzlich hochgeladen (20)

From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric)

  • 1. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.1
  • 2. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.2 MySQL High Availability: Managing Farms of Distributed Servers (MySQL Fabric) Mats Kindahl Alfranio Correia Narayanan Venkateswaran
  • 3. 3 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 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 decision. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Safe Harbor Statement
  • 4. 4 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Agenda  MySQL High Availability Options  MySQL Fabric – New kid on the block  MySQL Fabric – Failure detection and Failover  MySQL Fabric-aware connectors  MySQL Fabric – Playing with the new kid
  • 5. 5 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL High Availability Options
  • 6. 6 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. What Causes Downtime?  System Failures – Server faults – Software bugs or crashes  Physical Disasters  Scheduled Maintenance  User Errors
  • 7. 7 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Effect and Impact  Effect: – Service Unavailability – Bad response time  Impact: – Revenue loss – Negative impact on customer relationships – Reduced employee productivity – Regulatory issues
  • 8. 8 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Another Amazon Outage Exposes the Cloud's Dark Lining By Brad Stone - Bloomberg Businessweek “The entire incident lasted all of 49 minutes...”
  • 9. 9 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Causes of Downtime in Production MySQL Servers By Baron Schwartz – Percona “It is ironic but true that high-availability tools can cause downtime.”
  • 10. 10 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Failures are inevitable so design your systems taking this into account.
  • 11. 11 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. High Availability Solutions  Primary-Secondary  Shared Nothing Clusters  Tightly-coupled Clusters
  • 12. 12 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Simple to configure  Different Platforms  Configured over LAN or WAN  No Shared Storage or Virtual IP required Primary-Secondary Characteristics MySQL Replication in 5.6 Master Slave Slave Slave Slave
  • 13. 13 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Asynchronous Replication: risk of data loss (unless using semi-sync)  Performance overhead to master  No automatic failover or switchover (unless using MySQL Utilities) Primary-Secondary Characteristics MySQL Replication in 5.6 Master Slave Slave Slave Slave
  • 14. 14 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Multi-master architecture  No single point of failure  Support for SQL and NoSQL Interfaces  Synchronous replication Shared Nothing Clusters Characteristics MySQL Cluster MySQL Cluster Data Nodes MySQL Servers
  • 15. 15 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Tightly Coupled Clusters  Provide Active/Passive Solution  Examples: – DRBD – WSFC – Solaris Clustering – Oracle Virtual Machines
  • 16. 16 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Linux Kernel module integrated into Oracle Linux  Synchronous replication  Only one MySQL operational Distributed Replicated Block Device Characteristics DRBD (Regular Operation) Pacemaker MySQL DRBD MySQL DRBD Corosync ServicesCluster
  • 17. 17 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Cluster Management System required  Virtual IP migration Distributed Replicated Block Device Characteristics DRBD (Failover) Pacemaker MySQL DRBD MySQL DRBD Corosync ServicesCluster
  • 18. 18 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Cluster Management System required  Virtual IP migration Distributed Replicated Block Device Characteristics DRBD (Failover) Pacemaker MySQL DRBD MySQL DRBD Corosync ServicesCluster
  • 19. 19 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Required: – Windows Clustering – Shared Storage  Only one MySQL Operational  Virutal IP migration  Shared storage used to vote Shared Storage Characteristics Windows Server Failover Clustering (Regular Operation) SharedStorageServers MySQL Windows Clustering MySQL Windows Clustering Services Vote Data Binary Log
  • 20. 20 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL Fabric – New kid on the block
  • 21. 21 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Distributed framework  Extensions are first-class Citizens  Supported by a variety of connectors  Fault-tolerant solution  You can suggest features, report bugs and contribute patches MySQL Fabric  Still early alpha, long journey ahead  Farms of MySQL 5.6 Servers
  • 22. 22 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Support for Primary- Secondary  Focus on MySQL 5.6 and later  Written in Python Birds-eye View Characteristics High Availability Groups MySQL Fabric Application XML-RPC SQL Key Components
  • 23. 23 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Fabric-aware connectors: – Route Transactions – Cache Information – Currently Python, Java, PHP Birds-eye View Characteristics High Availability Groups MySQL Fabric Application XML-RPC SQL Fabric-aware Connectors
  • 24. 24 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  XML-RPC is widely available  Extensible Framework  Failures taken into account Architecture Characteristics MySQL MySQL Fabric Framework Executor State Store (Persister) Sh ?HA MySQLAMQP XML-RPC ?? Extensions Backing Store Protocols
  • 25. 25 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL Fabric: Prerequisites  MySQL Servers 5.6.10 (or later): – Backing Store – Managed Servers  Python 2.6 or 2.7  MySQL Utilities 1.4.0 – Available at labs (http://labs.mysql.com)
  • 26. 26 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL Fabric – Failure Detection and Failover
  • 27. 27 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Fabric keeps information on groups  Application defines the group that it will use  Connection failures regularly propagated HA Overview Characteristics High Availability GroupMySQL Fabric ApplicationOperator
  • 28. 28 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Failure Detection and Failover  Current Status: – Simple failure detector/recovery per group  Considering: – Make connectors report failures – Support external/custom failure detectors – Improve failover/switchover algorithm – Extend servers/system to avoid the split-brain problem
  • 29. 29 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Enabled per group Failure Detection group = Group.fetch(self.__group_id) for server in group.servers():   if server.is_alive():     continue   if group.master == server.uuid:     trigger("FAIL_OVER", [], self.__group_id)   else:     trigger("SERVER_LOST", [], self.__group_id,              server.uuid)   server.status = MySQLServer.FAULTY Failover if master has gone Notification if not master Server marked as faulty
  • 30. 30 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Failover Master Slave Slave Slave Slave T1 T2 T3 T1 T2 T3 T1 T1 T2 T1 Master fails
  • 31. 31 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Failover Master Slave Slave Slave Slave T1 T2 T3 T1 T2 T3 T1 T1 T2 T1 Choosing a candidate
  • 32. 32 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Failover Master Slave Slave Slave Slave T1 T2 T3 T1 T2 T3 T1 T1 T2 T1 Pointing to the new master
  • 33. 33 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Making Fabric Itself HA  Current Status: – Fabric can automatically resume on-going activities – Backing store is not left in an inconsistent state – Information is cached in the connector  Considering: – Replicated State Machine among Fabric nodes – Use MySQL Cluster as backing store
  • 34. 34 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Crash-safe Procedures MySQL Fabric Framework State Store (Persister) Sh HA MySQLAMQP XML-RPC MySQL Executor Procedure. Step 1 Procedure. Step 2 Procedure. Step 3 Regular Execution
  • 35. 35 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Crash-safe Procedures MySQL Fabric Framework State Store (Persister) Sh HA MySQLAMQP XML-RPC MySQL Executor Procedure. Step 1 Procedure. Step 2 Procedure. Step 3 Failover/Recovery Execution
  • 36. 36 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Crash-safe Procedures MySQL Fabric Framework State Store (Persister) Sh HA MySQLAMQP XML-RPC MySQL Executor Procedure. Step 1 Procedure. Step 2 Procedure. Step 3 Resuming Execution
  • 37. 37 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Writing a procedure @_events.on_event(STEP_1) def do_something(group_id):     _do_it(group_id)     _events.trigger_within_procedure(STEP_2, group_id)     ) @do_something.undo def undo_something(group_id):     _undo_it(group_id) Trigger the next step Compensate Operation Transactional Context
  • 38. 38 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL Fabric: Using MySQL Cluster MySQL Fabric Framework State Store (Persister) Sh HA MySQLAMQP XML-RPC MySQL Fabric Framework State Store (Persister) Sh HA MySQLAMQP XML-RPC MySQL Cluster Executor Executor
  • 39. 39 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL MySQL Fabric Framework Executor State Store (Persister) Sh HA MySQLAMQP XML-RPC MySQL tore ter) Sh HA L-RPC MySQ Fram Executor MAMQP MySQL MySQL Fabric Framework Executor State Store (Persister) Sh HA MySQLAMQP XML-RPC RSMRSM MySQL Fabric: Using Replicated State Machine
  • 40. 40 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL Fabric-aware Connectors
  • 41. 41 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Use MySQLFabricConnection Writing an application import mysql.connector.fabric as connector conn = connector.MySQLFabricConnection(     fabric={"host": "fabric.example.com", "port" : 8080},     user='mats', passwd= 'passwd', database="employees") conn.set_property(group='YYZ') cur = conn.cursor() Connecting to a Group Define a group Get a cursor to master in YYZ
  • 42. 42 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Connectors cannot hide failures Multi-statement transaction
  • 43. 43 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Connectors cannot hide failures Single-statement transaction
  • 44. 44 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Writing an application try:   conn.start_transaction()   conn.execute('INSERT...')   conn.execute('UPDATE...')   self.__cnx.commit() except InterfaceError as error:   cur = conn.cursor() Handling Connection Failures Connectors cannot safely retry or reconnect
  • 45. 45 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Plan your application to retry after a failure.
  • 46. 46 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Good practices  Handle session information in the retry logic: – Temporary tables – Session variables – Prepared statements  Check the wait_timeout server's property  Do not set connection_timeout
  • 47. 47 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Blogs  http://alfranio-distributed.blogspot.com/2013/09/writing-fault-tolerant-database.html  http://alfranio-distributed.blogspot.com/2013/09/tips-to-build-fault-tolerant-database.html Documents  http://miscalculation/why-mysql/white-papers/mysql-guide-to-high-availability-solutions/  http://dev.mysql.com/doc/workbench/en/mysql-utilities.html Code  MySQL Fabric available at http://labs.mysql.com/ References
  • 48. 48 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. MySQL Fabric – Playing with the new kid
  • 49. 49 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Use MTR  Do it manually, use sandbox, whatever you like Starting MySQL Servers Quick Setup rpl_fabric_gtid.cnf: !include ../my.cnf [mysqld.n] report­host=localhost log­slave­updates innodb gtid­mode=on enforce­gtid­consistency master­info­repository=TABLE ­­source include/have_innodb.inc rpl_fabric_gtid.test:
  • 50. 50 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Python 2.6 or 2.7  MySQL Utilities 1.4.0  Check configuration file MySQL Fabric Installation Quick Setup fabric.cfg: [storage] address = localhost:3306 user = fabric password =  database = fabric connection_timeout = 6 [protocol.xmlrpc] address = localhost:8080 threads = 5 url = file:///var/log/fabric.log
  • 51. 51 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved.  Configure the state store  Start fabric  Manage your groups Run MySQL Fabric Quick Setup mysqlfabric manage setup mysqlfabric manage start Terminal 1: mysqlfabric list­commands mysqlfabric group create YYZ mysqlfabric group add localhost:1300 root '' Terminal 2:
  • 52. 52 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Thoughts for the Future ● Connector multi-cast ● Scatter-gather ● Internal interfaces ● Improve extension support ● Improve procedures support ● Command-line interface ● Improving usability ● Focus on ease-of-use ● More protocols ● MySQL-RPC Protocol? ● AMQP? ● More frameworks? ● More HA group types ● DRBD ● MySQL Cluster ● Fabric-unaware connectors?
  • 53. 53 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Thoughts for the Future ● “More transparent” sharding ● Single-query transactions ● Cross-shard joins is a problem ● Multiple shard mappings ● Independent tables ● Multi-way shard split ● Efficient initial sharding ● Better use of resources ● High-availability executor ● Node failure stop execution ● Replicated State Machine ● Fail over to other Fabric node ● Distributed failure detector ● Connectors report failures ● Custom failure detectors
  • 54. 54 | 21/09/2013 | Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Thank you!
  • 55. Copyright © 2013, Oracle and/or its affiliates. All rights reserved.55 Your Feedback is Highly Appreciated! http://forums.mysql.com/list.php?144