3. 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.
5. Agenda
• Concept of HA
• Concept of Sharding
• MySQL Fabric Basics
• MySQL Fabric for HA
• MySQL Fabric for Sharding
• Some commands for Configuration &
Installation
9. 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 downtime
Causes of losing it (unscheduled downtime)
• Failures of hosts , Databases / MySQL
• Operating system
• The hardware
• Maintenance activity that may otherwise cause downtime
• And many more ……
10. 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
11. So what is MySQL Replication?
Replication copies transactions from the master and
replays them to the slave
13. 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.
15. 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
16. 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).
17. MySQL Fabric
An extensible and easy-to-use framework for
managing a farm of MySQL server supporting high-
availability and sharding
19. 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
20. High Availability, MySQL Fabric
• Group of MySQL servers
• Primary server
• Secondary servers
• GTID based replication to work
• MySQL 5.6 +
21. MySQL Fabric , HA
What Fabric Provides in terms of HA
• Failure detection and promotion
• Routing of database
22. 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.
34. 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