MySQL HA Sharding-Fabric

Post on 21-Feb-2017

134 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

WEBINAR on

MySQL Fabric For HA and Scaling Out

Presented ByAbdul Manaf

OSSCube Corporate Capabilities

Who Are We

• Global Solutions Provider having offices in the US, UK and India.

• We offer complete solutions in the domain of Digital Transformation, IT Modernization and IoT.

• Appraised at CMMI Level 3, we've been amongst the top 100 Great Places to Work® for three consecutive (2014, 2015 & 2016) years.

• We’ve delivered enterprise solutions to the likes of The New York Times, PVR Cinemas, ACER, Intel, CU Solutions, among others.

Digital Transformation

Practice

• PIM (Product Information Management)• WCM (Web Content Management)• DAM (Digital Asset Management)• e-Commerce

Modernization Practice

• Cloud • Enterprise Mobility• Application Modernization

IOT Practice • SMART Track & Trace• Product Lifecycle Management • Big Data - Analytics

© 2015 OSSCube LLC. All rights reserved.

What We Do

Agenda

• Concept of HA

• Concept of Sharding

• MySQL Fabric Basics

• MySQL Fabric for HA

• MySQL Fabric for Sharding

• Some commands for Configuration & Installation

High Availability

High Availability

Availability Calculation

Principles and Causes of loosing HA

Principles of High Availability• Elimination of single points of failure• Reliable crossover. In multi threaded systems, the crossover point

itself tends to become a single point of failure. • Detection of failures as they occur. If the two principles above are

observed, then a user may never see a failure. But the maintenance activity must.

Scheduled and unscheduled downtimeCauses of losing it (unscheduled downtime)• Failures of hosts , Databases / MySQL• Operating system• The hardware • Maintenance activity that may otherwise cause downtime• And many more ……

MySQL HA Solutions

HA is achieved via redundancy

The primary solutions supported by MySQL include:

• MySQL Native Replication• MySQL Cluster• MySQL with DRBD• Galera Cluster• Oracle VM Template for MySQL• MySQL with Solaris Cluster

So what is MySQL Replication?

Replication copies transactions from the master and replays them to the slave

Sharding

Sharding

• Sharding is a type of database partitioning that separates very large databases into smaller, faster, more easily managed parts called data shards.

• The word shard means a small part of a whole.

(Sharding) Tumblrʼs Size and Growth

Why Sharding?

Write scalability

• No other way to scale writes beyond the limits of one machine

• During peak insert times, you'll likely start hitting lag on slaves before your master shows a concurrency problem

Data size

• Working set won't fit in RAM• SSD performance drops as disk fills up• Risk of completely full disk• Operational difficulties: slow backups, longer to spin up new

slaves• Fault isolation: all of your data in one place = single point of

failure affecting all users

Make Sharding Your Last Resort

• Optimize everything else first, and then if the performance still isn’t good enough, it’s time to take a very bitter medicine

• The application developer has to write more code to be able to handle sharding logic

• Operational issues become more difficult (backing up, adding indexes, changing schema).

MySQL FabricAn extensible and easy-to-use framework for

managing a farm of MySQL server supporting high-availability and sharding

MySQL Fabric: What is it?

General Concepts , MySQL Fabric

• Group : collection of mysqld servers

• Global group : Special groups that store updates that must be propagated to all shards

• Node : Running instance of MySQL Fabric

• Shard : Horizontal partition of data in a table

• Primary : Group member that has been designated master

• Secondary : Group member that is read only

High Availability, MySQL Fabric

• Group of MySQL servers

• Primary server

• Secondary servers

• GTID based replication to work

• MySQL 5.6 +

MySQL Fabric , HA

What Fabric Provides in terms of HA

• Failure detection and promotion

• Routing of database

MySQL Fabric , Sharding

• Used to scale-out the database servers by partitioning the data across multiple MySQL Server "groups".

• Group could contain a single MySQL Server or it could be a HA group.

MySQL Fabric , Sharding

Birds-eye View of a Sharded Database

MySQL Fabric: Configuration

MySQL Fabric: Setup and Teardown

MySQL Fabric: Starting and Stopping

Sharding Architecture

MySQL Fabric: Sharding Setup

MySQL Fabric: Create Groups and add Servers

MySQL Fabric: Create Groups and add Servers

MySQL Fabric: Set up Shard Mapping

MySQL Fabric: Add Shards

Current Limitations

• Sharding is not completely transparent to the application.

• Auto-increment columns cannot be used as a sharding key

• The MySQL Fabric process itself is not fault-tolerant and must be restarted in the event of it failing

• Because the connectors perform the routing function, which could add extra latency

Thanks !

For queries please write to

abdul@osscube.com

Q & A

top related