SlideShare a Scribd company logo
1 of 51
Download to read offline
MySQL High Availability: 
Managing Farms of Distributed Servers 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 
| 
Narayanan Venkateswaran 
Alfranio Correia 
Mats Kindahl
Safe Harbor Statement 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf 
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.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Agenda 
Jan 
2010 
Sept 
2014 
➢ Building Reliable Systems 
➢ MySQL Fabric Overview 
➢ Groups 
➢ Failure Detection 
➢ Integration with other HA Solutions 
➢ High Availability @ Fabric Node 
➢ Future Work
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Causes of Downtime 
● System Failures 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
● Server faults 
3x ● Software QA bugs Staf 
or crashes 
2x Support Staf 
● Physical Disasters 
● Scheduled Maintenance 
● User Errors
2x Engineering Staf 
3x QA Staf 
2x Support Staf High Availability is an integral part of designing a reliable system 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014
High Availability Solutions 
● E.g. MySQL Replication 
● Shared Nothing Clusters 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
● Primary – Secondary 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x ● MySQL QA Cluster 
Staf 
2x Support Staf 
● Tightly Coupled Clusters 
● DRBD 
● WSFC 
● Solaris Clustering 
● Oracle VM High Availability
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Agenda 
Jan 
2010 
Sept 
2014 
➢ Building Reliable Systems 
➢ MySQL Fabric Overview 
➢ Groups 
➢ Failure Detection 
➢ Integration with other HA Solutions 
➢ High Availability @ Fabric Node 
➢ Future Work
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. All rights reserved. | 
MySQL Fabric 
Jan 
2010 
Sept 
2014
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 
– 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
Birds-eye View 
Application 
SQL 
Connector 
Connector 
Connector 
High Availability 
Groups 
XML-RPC 
MySQL-RPC 
MySQL 
Fabric 
Node 
SQL 
Operator 
Database 
Servers 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
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 
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 
Protocols 
Extensions 
Backing 
Store
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Agenda 
Jan 
2010 
Sept 
2014 
➢ Building Reliable Systems 
➢ MySQL Fabric Overview 
➢ Groups 
➢ Failure Detection 
➢ Integration with other HA Solutions 
➢ High Availability @ Fabric Node 
➢ Future Work
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Groups 
Jan 
2010 
Sept 
2014 
● Group of Servers 
– Hardware Redundancy 
– Data Redundancy 
● Generic Concept 
– Default Master-Slave 
configuration 
– Supports generic High 
Availability methods 
● DRBD 
● MySQL Cluster 
● MySQL Replication 
● Etc. 
DRBD 
ndbd ndbd 
ndbd ndbd
Creating a MySQL Fabric Group 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
Creating a Group 
Command: 
mysqlfabric group create <group_id> [--description=NONE] 
E.g. 
mysqlfabric group create group-1 –description=”Example Group” 
Creates a logical entity named group-1 that represents a farm of 
MySQL Servers in a HA configuration
MySQL Fabric Group – Add Servers 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
Adding Servers to a Group 
Command: 
mysqlfabric group add <group_id> <address> 
E.g. 
mysqlfabric group add group-1 server1.example.com 
mysqlfabric group add group-1 server2.example.com 
Adds two servers to group-1
MySQL Fabric Group – Create Master / Slave Setup 
Adding Servers to a Group 
Command: 
mysqlfabric group promote group_id 
[ --slave_id=NONE] 
E.g. 
mysqlfabric group promote group-1 
--slave_id=”server1.example.com” 
Promote server1 as the master 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Agenda 
Jan 
2010 
Sept 
2014 
➢ Building Reliable Systems 
➢ MySQL Fabric Overview 
➢ Groups 
➢ Failure Detection 
➢ Integration with other HA Solutions 
➢ High Availability @ Fabric Node 
➢ Future Work
Built-In Failure Detector 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Group level failure detector 
● Monitor servers within groups 
● On master failure 
– Mark master as faulty 
– Trigger fail-over 
● On slave failure 
– Mark slave as faulty 
● Solution is only for servers 
managed by Fabric
Built-in Failure detector configuration 
[failure_tracking] 
detections = 3 
detection_interval = 6 
detection_timeout = 1 
detections 
Number of times a server must fail an alive check before being 
marked as FAULTY. 
detection_interval 
Interval at which a server must be checked to be alive. 
detection_timeout 
Elapsed time after which a server alive ping must timeout. 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf
Distributed Failure Detection 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Connector reports error to 
Fabric 
● Error used to update backing 
store 
● Trigger Failover 
– Error count reaches 
threshold 
● The report API can be used by 
any generic process to report 
failures
Distributed Failure Detection – MySQL Fabric 
Configuration 
[failure_tracking] 
notifications = 300 
notification_clients = 50 
notification_interval = 60 
failover_interval = 0 
prune_time = 3600 
notifications 
The number of error notifications required to mark a server 
FAULTY. 
notification_clients 
The number of clients that need to report an error to mark a 
server FAULTY. 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf
Distributed Failure Detection – MySQL Fabric 
Configuration 
notification_interval 
The interval of interest in which we want to verify error 
notifications. 
failover_interval 
The interval at which we can safely do a failover in a group 
without causing system instability. 
prune_time 
Interval at which we need to prune the error logs. 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf
Distributed Failure Detection – Connector – Enabling 
Error Reporting 
● The option to report errors is part of the Fabric configuration 
● “report_errors” can be turned on as follows 
'host': .., 
'report_errors': True, 
} 
cnx = mysql.connector.connect(fabric=fabric_config) 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
fabric_config = { 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf 
● Causes an error during a connection to a server to be reported
Distributed Failure Detection – Connector – Error 
Reporting 
● The following errors are reported by default 
REPORT_ERRORS = ( 
errorcode.CR_SERVER_LOST, 
errorcode.CR_SERVER_GONE_ERROR, 
errorcode.CR_CONN_HOST_ERROR, 
errorcode.CR_CONNECTION_ERROR, 
errorcode.CR_IPSOCK_ERROR, 
) 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf 
● The above can be extended by setting extra_failure_report 
from mysql.connector.fabric import extra_failure_report 
extra_failure_report([error_code_0, 
error_code_1, ...])
Distributed Failure Detection – Connector – Error 
Reporting 
● The following errors are reported by default 
REPORT_ERRORS = ( 
errorcode.CR_SERVER_LOST, 
errorcode.CR_SERVER_GONE_ERROR, 
errorcode.CR_CONN_HOST_ERROR, 
errorcode.CR_CONNECTION_ERROR, 
errorcode.CR_IPSOCK_ERROR, 
) 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf 
● The above can be extended by setting extra_failure_report 
from mysql.connector.fabric import 
extra_failure_report 
extra_failure_report([error_code_0, error_code_1, 
...])
Distributed Failure Detection – Connector – Cache 
Invalidation 
● Define which errors cause invalidation of the connector cache 
● The following errors cause a cache invalidation by default 
RESET_CACHE_ON_ERROR = ( 
errorcode.CR_SERVER_LOST, 
errorcode.ER_OPTION_PREVENTS_STATEMENT,) 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf 
• The above can be extended by 
from mysql.connector.fabric import 
RESET_CACHE_ON_ERROR 
RESET_CACHE_ON_ERROR.append(error_code_0)
Distributed Failure Detection – Avoiding thundering 
herds 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
Application 
1. Error 
MySQL 
Fabric Node 
Application 
Application 
Application 
2. Error 
3. Error 
4.Error 
● When to report errors ? 
● Reporting errors at the session 
level can cause flooding 
● E.g. Orders Page 
– Orders Page writes customer 
orders to the database 
– Every failing order will cause 
a report
Distributed Failure Detection – Connector – Role 
● MySQL User role for accessing to Fabric dump and reporting 
● Adding users done using 
mysqlfabric user add <username> --role 
3 connector Role for MySQL Connectors 
+ Access to dump commands 
+ Reporting to Fabric 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf 
● connector role 
● Causes an error during a connection to a server to be reported
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Agenda 
Jan 
2010 
Sept 
2014 
➢ Building Reliable Systems 
➢ MySQL Fabric Overview 
➢ Groups 
➢ Failure Detection 
➢ Integration with other HA Solutions 
➢ High Availability @ Fabric Node 
➢ Future Work
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Update Only 
Jan 
2010 
Sept 
2014 
Scenario 
● Using Fabric as a lookup server 
● Servers managed outside Fabric 
– For E.g. using DRBD 
Requirement 
● Update Fabric without affecting 
servers
Group Based and Virtual IP Based solutions 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
● Group Based Solutions 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x ● Offer QA a notion Staf 
of Group Membership 
2x Support Staf 
● Virtual IP Based Solutions 
● Only one virtual server identified by a virtual IP Address 
● E.g. WFSC, DRBD
Group Based System 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Notion of membership 
● Dead servers automatically 
excluded from the group 
● Use update_only to store 
topology information in Fabric
Group Based System 
● Creating a Group 
● Adding Servers to a Group 
● Promote 
Creating a Group 
mysqlfabric group create "group-1" 
Adding Servers to a Group 
mysqlfabric group add group-1 server1.example.com --update_only 
mysqlfabric group add group-1 server2.example.com -- update_only 
Promote 
mysqlfabric group promote group-1 --slave_id=7bcb0804- 
41bb-11e4-b4d2-f4ce2963772b --update_only 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014
Group Based System – Updating Failures 
● Updating the state when all the servers are dead 
● Updating the state when the system is brought back 
online 
When all the servers are dead 
mysqlfabric threat report_error 7bcb0804-41bb-11e4-b4d2- 
f4ce2963772b --error=FAULTY --update_only 
When the system is brought back online 
mysqlfabric group promote group-1 --slave_id=7bcb0804- 
41bb-11e4-b4d2-f4ce2963772b --update_only 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014
Virtual IP System – Integrating DRBD 
● Creating a Group 
● Adding Virtual IP to Group 
Creating a Group 
mysqlfabric group create "group-1" 
Adding Servers to a Group 
mysqlfabric group add group-1 IPAddress:Portno --update_only 
● Add the virtual IP of the DRBD setup to the group definition. 
● The DRBD setup handles the maintanence of the cluster 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014
Virtual IP System – Updating Failures 
● Updating the state when all the servers are dead 
● Updating the state when the system is brought back 
online 
When all the servers are dead 
mysqlfabric threat report_error 7bcb0804-41bb-11e4-b4d2- 
f4ce2963772b --error=FAULTY --update_only 
When the system is brought back online 
mysqlfabric group promote group-1 --slave_id=7bcb0804- 
41bb-11e4-b4d2-f4ce2963772b --update_only 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Agenda 
Jan 
2010 
Sept 
2014 
➢ Building Reliable Systems 
➢ MySQL Fabric Overview 
➢ Groups 
➢ Failure Detection 
➢ Integration with other HA Solutions 
➢ High Availability @ Fabric Node 
➢ Future Work
HA @ The MySQL Fabric Node 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Fabric Node Fails 
● Crash-Safe Procedures 
● State Store Fails 
● Safeguarding meta-data 
● Both Fabric and State Store Fails
Crash Safe Procedures 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Each Fabric Operation is a procedure 
● Procedure consists of a set of steps/jobs 
● Steps/Jobs 
● Can be Rolled Back 
● Are Idempotent
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
State Store failure 
Jan 
2010 
Sept 
2014 
● Storing Data in MySQL Cluster 
● Storing Data in replicated Storage
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Agenda 
Jan 
2010 
Sept 
2014 
➢ Building Reliable Systems 
➢ MySQL Fabric Overview 
➢ Groups 
➢ Failure Detection 
➢ Integration with other HA Solutions 
➢ High Availability @ Fabric Node 
➢ Future Work
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Future Work 
Jan 
2010 
Sept 
2014 
● Ideas for the future
Detecting and Restarting when Fabric Fails 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Detecting Fabric Failure 
● Using Pacemaker 
● Avoiding split-brain 
● Re-Starting Fabric 
● Providing script for restart
Handling Failure of MySQL Fabric and State Store 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Building a replicated state machine 
● Multiple Fabric instance that can take over from any of 
the other instances 
● Uses Paxos/Raft-like implementation
Handling Connector Failover when Fabric goes down 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● Alternate Fabric Addresses 
– Connector has a list of potential addresses 
– Try these addresses when a Fabric node fails 
● Connector notices server failure 
– PRIMARY failure 
– SECONDARY failure 
– All servers fail
Error reporting when Fabric goes down 
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Jan 
2010 
Sept 
2014 
● PRIMARY failure 
– Report error to application 
– Remove from cache 
– Set group to read only 
● SECONDARY failure 
– Remove from cache 
– Pick alternate server 
● All server failure 
– Report Error to Application
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.htm 
l 
● Migrating From an Unsharded to a Sharded 
Setup 
http://vnwrites.blogspot.com/2013/09/mysqlfabric-shardin 
g-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 
Mats Kindahl 
Twitter: @mkindahl 
http://mysqlmusings.blogspot 
.com 
Alfranio Correia 
Twitter: @alfranio 
http://alfranio-distributed.blo 
gspot.com 
Narayanan 
Venkateswaran 
Twitter: @vn_tweets 
http://vnwrites.blogspot 
.com 
Geert Vanderkelen 
Twitter: @geertjanvdk 
http://geert.vanderkelen. 
org 
Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | 
Thank You ! 
Jan 
2010 
Sept 
2014 
2x Engineering Staf 
3x QA Staf 
2x Support Staf

More Related Content

What's hot

Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best PracticesOracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best PracticesSven Sandberg
 
MySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and ScalabilityMySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and ScalabilityShivji Kumar Jha
 
Oracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12cOracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12cTrivadis
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsPedro Gomes
 
Fine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceFine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceVitor Oliveira
 
Collaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best PracticesCollaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best PracticesAnil Nair
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017Ivan Ma
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationNuno Carvalho
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)Ryusuke Kajiyama
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"Ryusuke Kajiyama
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em StartupsMySQL Brasil
 
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...Geir Høydalsvik
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)Olivier DASINI
 
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
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationShivji Kumar Jha
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCRyusuke Kajiyama
 
MySQL Replication Performance in the Cloud
MySQL Replication Performance in the CloudMySQL Replication Performance in the Cloud
MySQL Replication Performance in the CloudVitor Oliveira
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10Kenny Gryp
 
MySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMiguel Araújo
 

What's hot (20)

Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best PracticesOracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
Oracle OpenWorld 2013 - HOL9737 MySQL Replication Best Practices
 
MySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and ScalabilityMySQL Developer Day conference: MySQL Replication and Scalability
MySQL Developer Day conference: MySQL Replication and Scalability
 
Oracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12cOracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12c
 
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication SetupsMix ‘n’ Match Async and Group Replication for Advanced Replication Setups
Mix ‘n’ Match Async and Group Replication for Advanced Replication Setups
 
Fine-tuning Group Replication for Performance
Fine-tuning Group Replication for PerformanceFine-tuning Group Replication for Performance
Fine-tuning Group Replication for Performance
 
Collaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best PracticesCollaborate 17 Oracle RAC 12cRel 2 Best Practices
Collaborate 17 Oracle RAC 12cRel 2 Best Practices
 
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
MySQL InnoDB Cluster and MySQL Group Replication @HKOSC 2017
 
MySQL Cluster Basics
MySQL Cluster BasicsMySQL Cluster Basics
MySQL Cluster Basics
 
MySQL High Availability with Group Replication
MySQL High Availability with Group ReplicationMySQL High Availability with Group Replication
MySQL High Availability with Group Replication
 
MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)MySQL Cluster as Transactional NoSQL (KVS)
MySQL Cluster as Transactional NoSQL (KVS)
 
TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"TWJUG August, MySQL JDBC Driver "Connector/J"
TWJUG August, MySQL JDBC Driver "Connector/J"
 
10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups10 Razões para Usar MySQL em Startups
10 Razões para Usar MySQL em Startups
 
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
The State of the Dolphin, MySQL Keynote at Percona Live Europe 2019, Amsterda...
 
MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)MySQL 5.7 InnoDB Cluster (Jan 2018)
MySQL 5.7 InnoDB Cluster (Jan 2018)
 
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
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group Replication
 
TWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RCTWJUG August, What's new in MySQL 5.7 RC
TWJUG August, What's new in MySQL 5.7 RC
 
MySQL Replication Performance in the Cloud
MySQL Replication Performance in the CloudMySQL Replication Performance in the Cloud
MySQL Replication Performance in the Cloud
 
MySQL Database Architectures - 2020-10
MySQL Database Architectures -  2020-10MySQL Database Architectures -  2020-10
MySQL Database Architectures - 2020-10
 
MySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA ToolMySQL Shell - The Best MySQL DBA Tool
MySQL Shell - The Best MySQL DBA Tool
 

Viewers also liked

JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...
JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...
JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...InSync2011
 
Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...
Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...
Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...InSync2011
 
Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...
Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...
Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...InSync2011
 
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...InSync2011
 
Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...
Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...
Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...InSync2011
 
Database & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdf
Database & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdfDatabase & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdf
Database & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdfInSync2011
 
Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...
Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...
Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...InSync2011
 
Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...
Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...
Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...InSync2011
 

Viewers also liked (8)

JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...
JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...
JD Edwards & Peoplesoft 2 _ Scott Ash _ Fullfillment and apparel management m...
 
Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...
Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...
Developer and Fusion Middleware 2 _ Aaron Blishen _ Event driven SOA Integrat...
 
Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...
Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...
Developer and Fusion Middleware 1 _ Kevin Powe _ Log files - a wealth of fore...
 
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
Database & Technology 1 _ Marcelle Kratchvil _ Why you should be storing unst...
 
Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...
Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...
Developer and Fusion Middleware 2 _Greg Kirkendall _ How Australia Post teach...
 
Database & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdf
Database & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdfDatabase & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdf
Database & Technology 1 _ Milina Ristic _ Why use oracle data guard.pdf
 
Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...
Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...
Database & Technology 1 _ Martin Power _ Delivering Oracles hight availabilit...
 
Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...
Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...
Primavera _ Loretta Bayliss _ Implementing EPPM in rapidly changing and compe...
 

Similar to 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 MySQLTed Wennmark
 
MySQL Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014MySQL Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014Lars Thalmann
 
My sql fabric webinar v1.1
My sql fabric webinar v1.1My sql fabric webinar v1.1
My sql fabric webinar v1.1Ricky Setyawan
 
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
 
2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdf2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdfHaiping Li
 
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 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
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMark Swarbrick
 
Netherlands Tech Tour 02 - MySQL Fabric
Netherlands Tech Tour 02 -   MySQL FabricNetherlands Tech Tour 02 -   MySQL Fabric
Netherlands Tech Tour 02 - MySQL FabricMark Swarbrick
 
Introduction to Distributed Computing & Distributed Databases
Introduction to Distributed Computing & Distributed DatabasesIntroduction to Distributed Computing & Distributed Databases
Introduction to Distributed Computing & Distributed DatabasesShankar Iyer
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL Brasil
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptxIvan Ma
 
Basic MySQL Troubleshooting for Oracle DBAs
Basic MySQL Troubleshooting for Oracle DBAsBasic MySQL Troubleshooting for Oracle DBAs
Basic MySQL Troubleshooting for Oracle DBAsSveta Smirnova
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLMario Beck
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAsMario Beck
 
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
 
New Not Your Father's Enterprise Manager
New Not Your Father's Enterprise ManagerNew Not Your Father's Enterprise Manager
New Not Your Father's Enterprise ManagerKellyn Pot'Vin-Gorman
 
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementUsing MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementMark Matthews
 
Changes in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must KnowChanges in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must KnowBruno Borges
 

Similar to MySQL High Availability - Managing Farms of Distributed Servers (20)

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 Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014MySQL Fabric Tutorial, October 2014
MySQL Fabric Tutorial, October 2014
 
My sql fabric webinar v1.1
My sql fabric webinar v1.1My sql fabric webinar v1.1
My sql fabric webinar v1.1
 
MySQL Fabric
MySQL FabricMySQL Fabric
MySQL Fabric
 
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
 
2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdf2_MySQL_Cluster_Introduction.pdf
2_MySQL_Cluster_Introduction.pdf
 
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 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
 
MySQL Intro JSON NoSQL
MySQL Intro JSON NoSQLMySQL Intro JSON NoSQL
MySQL Intro JSON NoSQL
 
Netherlands Tech Tour 02 - MySQL Fabric
Netherlands Tech Tour 02 -   MySQL FabricNetherlands Tech Tour 02 -   MySQL Fabric
Netherlands Tech Tour 02 - MySQL Fabric
 
Introduction to Distributed Computing & Distributed Databases
Introduction to Distributed Computing & Distributed DatabasesIntroduction to Distributed Computing & Distributed Databases
Introduction to Distributed Computing & Distributed Databases
 
MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15MySQL The State of the Dolphin - jun15
MySQL The State of the Dolphin - jun15
 
20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx20141011 my sql clusterv01pptx
20141011 my sql clusterv01pptx
 
Basic MySQL Troubleshooting for Oracle DBAs
Basic MySQL Troubleshooting for Oracle DBAsBasic MySQL Troubleshooting for Oracle DBAs
Basic MySQL Troubleshooting for Oracle DBAs
 
Oracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQLOracle Enterprise Manager for MySQL
Oracle Enterprise Manager for MySQL
 
MySQL for Oracle DBAs
MySQL for Oracle DBAsMySQL for Oracle DBAs
MySQL for Oracle DBAs
 
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...
 
New Not Your Father's Enterprise Manager
New Not Your Father's Enterprise ManagerNew Not Your Father's Enterprise Manager
New Not Your Father's Enterprise Manager
 
Using MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance ImprovementUsing MySQL Enterprise Monitor for Continuous Performance Improvement
Using MySQL Enterprise Monitor for Continuous Performance Improvement
 
Changes in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must KnowChanges in WebLogic 12.1.3 Every Administrator Must Know
Changes in WebLogic 12.1.3 Every Administrator Must Know
 

Recently uploaded

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 

Recently uploaded (20)

Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 

MySQL High Availability - Managing Farms of Distributed Servers

  • 1. MySQL High Availability: Managing Farms of Distributed Servers Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Narayanan Venkateswaran Alfranio Correia Mats Kindahl
  • 2. Safe Harbor Statement Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf 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.
  • 3. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda Jan 2010 Sept 2014 ➢ Building Reliable Systems ➢ MySQL Fabric Overview ➢ Groups ➢ Failure Detection ➢ Integration with other HA Solutions ➢ High Availability @ Fabric Node ➢ Future Work
  • 4. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Causes of Downtime ● System Failures Jan 2010 Sept 2014 2x Engineering Staf ● Server faults 3x ● Software QA bugs Staf or crashes 2x Support Staf ● Physical Disasters ● Scheduled Maintenance ● User Errors
  • 5. 2x Engineering Staf 3x QA Staf 2x Support Staf High Availability is an integral part of designing a reliable system Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014
  • 6. High Availability Solutions ● E.g. MySQL Replication ● Shared Nothing Clusters Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | ● Primary – Secondary Jan 2010 Sept 2014 2x Engineering Staf 3x ● MySQL QA Cluster Staf 2x Support Staf ● Tightly Coupled Clusters ● DRBD ● WSFC ● Solaris Clustering ● Oracle VM High Availability
  • 7. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda Jan 2010 Sept 2014 ➢ Building Reliable Systems ➢ MySQL Fabric Overview ➢ Groups ➢ Failure Detection ➢ Integration with other HA Solutions ➢ High Availability @ Fabric Node ➢ Future Work
  • 8. 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. All rights reserved. | MySQL Fabric Jan 2010 Sept 2014
  • 9. 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 – 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
  • 10. Birds-eye View Application SQL Connector Connector Connector High Availability Groups XML-RPC MySQL-RPC MySQL Fabric Node SQL Operator Database Servers Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 11. 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
  • 12. MySQL Fabric Node Architecture Connector 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 Protocols Extensions Backing Store
  • 13. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda Jan 2010 Sept 2014 ➢ Building Reliable Systems ➢ MySQL Fabric Overview ➢ Groups ➢ Failure Detection ➢ Integration with other HA Solutions ➢ High Availability @ Fabric Node ➢ Future Work
  • 14. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Groups Jan 2010 Sept 2014 ● Group of Servers – Hardware Redundancy – Data Redundancy ● Generic Concept – Default Master-Slave configuration – Supports generic High Availability methods ● DRBD ● MySQL Cluster ● MySQL Replication ● Etc. DRBD ndbd ndbd ndbd ndbd
  • 15. Creating a MySQL Fabric Group Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 Creating a Group Command: mysqlfabric group create <group_id> [--description=NONE] E.g. mysqlfabric group create group-1 –description=”Example Group” Creates a logical entity named group-1 that represents a farm of MySQL Servers in a HA configuration
  • 16. MySQL Fabric Group – Add Servers Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 Adding Servers to a Group Command: mysqlfabric group add <group_id> <address> E.g. mysqlfabric group add group-1 server1.example.com mysqlfabric group add group-1 server2.example.com Adds two servers to group-1
  • 17. MySQL Fabric Group – Create Master / Slave Setup Adding Servers to a Group Command: mysqlfabric group promote group_id [ --slave_id=NONE] E.g. mysqlfabric group promote group-1 --slave_id=”server1.example.com” Promote server1 as the master Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014
  • 18. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda Jan 2010 Sept 2014 ➢ Building Reliable Systems ➢ MySQL Fabric Overview ➢ Groups ➢ Failure Detection ➢ Integration with other HA Solutions ➢ High Availability @ Fabric Node ➢ Future Work
  • 19. Built-In Failure Detector Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Group level failure detector ● Monitor servers within groups ● On master failure – Mark master as faulty – Trigger fail-over ● On slave failure – Mark slave as faulty ● Solution is only for servers managed by Fabric
  • 20. Built-in Failure detector configuration [failure_tracking] detections = 3 detection_interval = 6 detection_timeout = 1 detections Number of times a server must fail an alive check before being marked as FAULTY. detection_interval Interval at which a server must be checked to be alive. detection_timeout Elapsed time after which a server alive ping must timeout. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf
  • 21. Distributed Failure Detection Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Connector reports error to Fabric ● Error used to update backing store ● Trigger Failover – Error count reaches threshold ● The report API can be used by any generic process to report failures
  • 22. Distributed Failure Detection – MySQL Fabric Configuration [failure_tracking] notifications = 300 notification_clients = 50 notification_interval = 60 failover_interval = 0 prune_time = 3600 notifications The number of error notifications required to mark a server FAULTY. notification_clients The number of clients that need to report an error to mark a server FAULTY. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf
  • 23. Distributed Failure Detection – MySQL Fabric Configuration notification_interval The interval of interest in which we want to verify error notifications. failover_interval The interval at which we can safely do a failover in a group without causing system instability. prune_time Interval at which we need to prune the error logs. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf
  • 24. Distributed Failure Detection – Connector – Enabling Error Reporting ● The option to report errors is part of the Fabric configuration ● “report_errors” can be turned on as follows 'host': .., 'report_errors': True, } cnx = mysql.connector.connect(fabric=fabric_config) Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | fabric_config = { Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf ● Causes an error during a connection to a server to be reported
  • 25. Distributed Failure Detection – Connector – Error Reporting ● The following errors are reported by default REPORT_ERRORS = ( errorcode.CR_SERVER_LOST, errorcode.CR_SERVER_GONE_ERROR, errorcode.CR_CONN_HOST_ERROR, errorcode.CR_CONNECTION_ERROR, errorcode.CR_IPSOCK_ERROR, ) Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf ● The above can be extended by setting extra_failure_report from mysql.connector.fabric import extra_failure_report extra_failure_report([error_code_0, error_code_1, ...])
  • 26. Distributed Failure Detection – Connector – Error Reporting ● The following errors are reported by default REPORT_ERRORS = ( errorcode.CR_SERVER_LOST, errorcode.CR_SERVER_GONE_ERROR, errorcode.CR_CONN_HOST_ERROR, errorcode.CR_CONNECTION_ERROR, errorcode.CR_IPSOCK_ERROR, ) Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf ● The above can be extended by setting extra_failure_report from mysql.connector.fabric import extra_failure_report extra_failure_report([error_code_0, error_code_1, ...])
  • 27. Distributed Failure Detection – Connector – Cache Invalidation ● Define which errors cause invalidation of the connector cache ● The following errors cause a cache invalidation by default RESET_CACHE_ON_ERROR = ( errorcode.CR_SERVER_LOST, errorcode.ER_OPTION_PREVENTS_STATEMENT,) Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf • The above can be extended by from mysql.connector.fabric import RESET_CACHE_ON_ERROR RESET_CACHE_ON_ERROR.append(error_code_0)
  • 28. Distributed Failure Detection – Avoiding thundering herds Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 Application 1. Error MySQL Fabric Node Application Application Application 2. Error 3. Error 4.Error ● When to report errors ? ● Reporting errors at the session level can cause flooding ● E.g. Orders Page – Orders Page writes customer orders to the database – Every failing order will cause a report
  • 29. Distributed Failure Detection – Connector – Role ● MySQL User role for accessing to Fabric dump and reporting ● Adding users done using mysqlfabric user add <username> --role 3 connector Role for MySQL Connectors + Access to dump commands + Reporting to Fabric Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf ● connector role ● Causes an error during a connection to a server to be reported
  • 30. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda Jan 2010 Sept 2014 ➢ Building Reliable Systems ➢ MySQL Fabric Overview ➢ Groups ➢ Failure Detection ➢ Integration with other HA Solutions ➢ High Availability @ Fabric Node ➢ Future Work
  • 31. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Update Only Jan 2010 Sept 2014 Scenario ● Using Fabric as a lookup server ● Servers managed outside Fabric – For E.g. using DRBD Requirement ● Update Fabric without affecting servers
  • 32. Group Based and Virtual IP Based solutions Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | ● Group Based Solutions Jan 2010 Sept 2014 2x Engineering Staf 3x ● Offer QA a notion Staf of Group Membership 2x Support Staf ● Virtual IP Based Solutions ● Only one virtual server identified by a virtual IP Address ● E.g. WFSC, DRBD
  • 33. Group Based System Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Notion of membership ● Dead servers automatically excluded from the group ● Use update_only to store topology information in Fabric
  • 34. Group Based System ● Creating a Group ● Adding Servers to a Group ● Promote Creating a Group mysqlfabric group create "group-1" Adding Servers to a Group mysqlfabric group add group-1 server1.example.com --update_only mysqlfabric group add group-1 server2.example.com -- update_only Promote mysqlfabric group promote group-1 --slave_id=7bcb0804- 41bb-11e4-b4d2-f4ce2963772b --update_only Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014
  • 35. Group Based System – Updating Failures ● Updating the state when all the servers are dead ● Updating the state when the system is brought back online When all the servers are dead mysqlfabric threat report_error 7bcb0804-41bb-11e4-b4d2- f4ce2963772b --error=FAULTY --update_only When the system is brought back online mysqlfabric group promote group-1 --slave_id=7bcb0804- 41bb-11e4-b4d2-f4ce2963772b --update_only Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014
  • 36. Virtual IP System – Integrating DRBD ● Creating a Group ● Adding Virtual IP to Group Creating a Group mysqlfabric group create "group-1" Adding Servers to a Group mysqlfabric group add group-1 IPAddress:Portno --update_only ● Add the virtual IP of the DRBD setup to the group definition. ● The DRBD setup handles the maintanence of the cluster Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014
  • 37. Virtual IP System – Updating Failures ● Updating the state when all the servers are dead ● Updating the state when the system is brought back online When all the servers are dead mysqlfabric threat report_error 7bcb0804-41bb-11e4-b4d2- f4ce2963772b --error=FAULTY --update_only When the system is brought back online mysqlfabric group promote group-1 --slave_id=7bcb0804- 41bb-11e4-b4d2-f4ce2963772b --update_only Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014
  • 38. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda Jan 2010 Sept 2014 ➢ Building Reliable Systems ➢ MySQL Fabric Overview ➢ Groups ➢ Failure Detection ➢ Integration with other HA Solutions ➢ High Availability @ Fabric Node ➢ Future Work
  • 39. HA @ The MySQL Fabric Node Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Fabric Node Fails ● Crash-Safe Procedures ● State Store Fails ● Safeguarding meta-data ● Both Fabric and State Store Fails
  • 40. Crash Safe Procedures Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Each Fabric Operation is a procedure ● Procedure consists of a set of steps/jobs ● Steps/Jobs ● Can be Rolled Back ● Are Idempotent
  • 41. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | State Store failure Jan 2010 Sept 2014 ● Storing Data in MySQL Cluster ● Storing Data in replicated Storage
  • 42. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Agenda Jan 2010 Sept 2014 ➢ Building Reliable Systems ➢ MySQL Fabric Overview ➢ Groups ➢ Failure Detection ➢ Integration with other HA Solutions ➢ High Availability @ Fabric Node ➢ Future Work
  • 43. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Future Work Jan 2010 Sept 2014 ● Ideas for the future
  • 44. Detecting and Restarting when Fabric Fails Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Detecting Fabric Failure ● Using Pacemaker ● Avoiding split-brain ● Re-Starting Fabric ● Providing script for restart
  • 45. Handling Failure of MySQL Fabric and State Store Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Building a replicated state machine ● Multiple Fabric instance that can take over from any of the other instances ● Uses Paxos/Raft-like implementation
  • 46. Handling Connector Failover when Fabric goes down Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● Alternate Fabric Addresses – Connector has a list of potential addresses – Try these addresses when a Fabric node fails ● Connector notices server failure – PRIMARY failure – SECONDARY failure – All servers fail
  • 47. Error reporting when Fabric goes down Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Jan 2010 Sept 2014 ● PRIMARY failure – Report error to application – Remove from cache – Set group to read only ● SECONDARY failure – Remove from cache – Pick alternate server ● All server failure – Report Error to Application
  • 48. 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.htm l ● Migrating From an Unsharded to a Sharded Setup http://vnwrites.blogspot.com/2013/09/mysqlfabric-shardin g-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. |
  • 49. 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
  • 50. Keeping in Touch Mats Kindahl Twitter: @mkindahl http://mysqlmusings.blogspot .com Alfranio Correia Twitter: @alfranio http://alfranio-distributed.blo gspot.com Narayanan Venkateswaran Twitter: @vn_tweets http://vnwrites.blogspot .com Geert Vanderkelen Twitter: @geertjanvdk http://geert.vanderkelen. org Copyright © 2014, Oracle and/or its affiliates. 2014-10-02 All rights reserved. |
  • 51. Copyright © 2014, Oracle and/or its affiliates. All rights reserved. | Thank You ! Jan 2010 Sept 2014 2x Engineering Staf 3x QA Staf 2x Support Staf