SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Percona XtraDB Cluster
wsickles@underarmour.com
Percona XtraDB Cluster
• Percona Server
• Codership Galera Library for
MySQL
• Percona XtraBackup
• All in one package
Percona XtraDB Cluster
• Synchronous Replication
• Multi-Master
• Parallel Applying on Slaves
• Data Consistency
• Automatic node provisioning
• Highly Available MySQL
Database
Managed MySQL Service
Managed MySQL Service
• Fully Managed
• Simple to Deploy
• Easy to Scale
• Reliable
Managed MySQL Service
Percona XtraDB Cluster
• Synchronous Replication
• Multi-Master
• Parallel Applying on Slaves
• Data Consistency
• Automatic node provisioning
• Highly Available MySQL
Database
Percona XtraDB Cluster
Questions?
wsickles@underarmour.com

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Codership's galera cluster installation and quickstart webinar march 2016
Codership's galera cluster installation and quickstart webinar march 2016Codership's galera cluster installation and quickstart webinar march 2016
Codership's galera cluster installation and quickstart webinar march 2016
 
Intro to MySQL Part I
Intro to MySQL Part IIntro to MySQL Part I
Intro to MySQL Part I
 
Mysql ecosystem in 2018
Mysql ecosystem in 2018Mysql ecosystem in 2018
Mysql ecosystem in 2018
 
Apache CloudStack at LinuxCon Japan
Apache CloudStack at LinuxCon JapanApache CloudStack at LinuxCon Japan
Apache CloudStack at LinuxCon Japan
 
The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016The MySQL Server Ecosystem in 2016
The MySQL Server Ecosystem in 2016
 
MongoDB at community engine
MongoDB at community engineMongoDB at community engine
MongoDB at community engine
 
Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?Forking Successfully - or is a branch better?
Forking Successfully - or is a branch better?
 
Wikipedia Cloud Search Webinar
Wikipedia Cloud Search WebinarWikipedia Cloud Search Webinar
Wikipedia Cloud Search Webinar
 
Cassandra in Azure
Cassandra  in AzureCassandra  in Azure
Cassandra in Azure
 
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
Transitioning From SQL Server to MySQL - Presentation from Percona Live 2016
 
ActiveMQ 5.9.x new features
ActiveMQ 5.9.x new featuresActiveMQ 5.9.x new features
ActiveMQ 5.9.x new features
 
Fuse integration-services
Fuse integration-servicesFuse integration-services
Fuse integration-services
 
KubeCon_NA_2021
KubeCon_NA_2021KubeCon_NA_2021
KubeCon_NA_2021
 
Securing your database servers from external attacks
Securing your database servers from external attacksSecuring your database servers from external attacks
Securing your database servers from external attacks
 
Grails in the Cloud (2013)
Grails in the Cloud (2013)Grails in the Cloud (2013)
Grails in the Cloud (2013)
 
Lessons from database failures
Lessons from database failuresLessons from database failures
Lessons from database failures
 
SSDs are Awesome
SSDs are AwesomeSSDs are Awesome
SSDs are Awesome
 
Lessons from database failures
Lessons from database failures Lessons from database failures
Lessons from database failures
 
The Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep VittalThe Future of SDN in CloudStack by Chiradeep Vittal
The Future of SDN in CloudStack by Chiradeep Vittal
 
MySQL 和 InnoDB 性能
MySQL 和 InnoDB 性能MySQL 和 InnoDB 性能
MySQL 和 InnoDB 性能
 

Andere mochten auch

Summary Arun_Murthi Software System Safety SME
Summary Arun_Murthi Software System Safety SMESummary Arun_Murthi Software System Safety SME
Summary Arun_Murthi Software System Safety SME
ARUN MURTHI
 

Andere mochten auch (10)

Using HAProxy to Scale MySQL
Using HAProxy to Scale MySQLUsing HAProxy to Scale MySQL
Using HAProxy to Scale MySQL
 
Curso online - Configuración de servicios terminal server en windows 2008
Curso online - Configuración de servicios terminal server en windows 2008 Curso online - Configuración de servicios terminal server en windows 2008
Curso online - Configuración de servicios terminal server en windows 2008
 
NRUSSO Resume (1)
NRUSSO Resume  (1)NRUSSO Resume  (1)
NRUSSO Resume (1)
 
Summary Arun_Murthi Software System Safety SME
Summary Arun_Murthi Software System Safety SMESummary Arun_Murthi Software System Safety SME
Summary Arun_Murthi Software System Safety SME
 
Think Global, Act Local: Global Payments Strategies for Digital Businesses
Think Global, Act Local: Global Payments Strategies for Digital BusinessesThink Global, Act Local: Global Payments Strategies for Digital Businesses
Think Global, Act Local: Global Payments Strategies for Digital Businesses
 
Presentatie Frank Dieters
Presentatie Frank DietersPresentatie Frank Dieters
Presentatie Frank Dieters
 
Pengenalan Dasar NodeJS
Pengenalan Dasar NodeJSPengenalan Dasar NodeJS
Pengenalan Dasar NodeJS
 
A-Resume
A-ResumeA-Resume
A-Resume
 
Sector Study of Financial Technology in the Philippines
Sector Study of Financial Technology in the PhilippinesSector Study of Financial Technology in the Philippines
Sector Study of Financial Technology in the Philippines
 
Ogone - NOAH12 San Francisco
Ogone - NOAH12 San FranciscoOgone - NOAH12 San Francisco
Ogone - NOAH12 San Francisco
 

Kürzlich hochgeladen

AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
Alluxio, Inc.
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 

Kürzlich hochgeladen (20)

AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
how-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdfhow-to-download-files-safely-from-the-internet.pdf
how-to-download-files-safely-from-the-internet.pdf
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
AI/ML Infra Meetup | Improve Speed and GPU Utilization for Model Training & S...
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
INGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by DesignINGKA DIGITAL: Linked Metadata by Design
INGKA DIGITAL: Linked Metadata by Design
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand5 Reasons Driving Warehouse Management Systems Demand
5 Reasons Driving Warehouse Management Systems Demand
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
What need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java DevelopersWhat need to be mastered as AI-Powered Java Developers
What need to be mastered as AI-Powered Java Developers
 
Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024Secure Software Ecosystem Teqnation 2024
Secure Software Ecosystem Teqnation 2024
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 

Percona xtradb cluster

Hinweis der Redaktion

  1. Bill Sickles – I’m a DBA working in the Dev/Ops group of UA Connected Fitness. Which initially started as MapMyFitness in 2006 and was acquired by UA in 2013. Currently, we have ~40 million users of the MapMyFitness platform and with UA’s acquisition of both Endomondo and MyFitnessPal our combined users total over 190 million worldwide. As we look to consolidate and align these three platforms we continue to research and experiment with various technologies like PXC.
  2. Percona Server – free, fully compatible, open source drop in replacement for MySQL. In continuous use at MMF as a primary data store since MMF’s inception 2006. Scaled from a few hundred users to ~40 million in the MapMyFitness space. Codership Galera Library for MySQL – high availability solution for MySQL, synchronous replication, fault tolerant failover, multi-master and parallel replication, with “quick” (nothing is quick when your database is approaching a terra byte in size) relatively easy provisioning/scalability. Percona XtraBackup – free and open source online backup solution for MySQL. Performs online, non-blocking, compressed backups on transactional systems (innodb). One package – install via yum or apt-get on linux based systems, just need to add the Percona repo of choice.
  3. Synchronous Replication: virtually synchronous, cluster uses a form of optimistic locking to apply transactions. Much faster than a two phase commit process, more like a fire and forget operation. A limitation is round trip time between cluster nodes. Multi-master: you can read and write from any node in the cluster. Suggested to write to only one node, because of optimistic locking model, conflicting writes from other nodes will be rolled back on the losing node. Parallel Applying: unlike MySQL async replication which is currently single threaded, once transactions are applied to a node you can have multiple threads apply those transactions on the other nodes. This may or may not work depending on your implementation of referential integrity, namely the use/misuse of foreign keys. These rules can be relaxed but you add some risks of data inconsistencies. Data Consistency: each node has a full copy of the entire database, which is kept in-sync via synchronous replication. If an inconsistency is detected the node will be removed from the cluster. Automatic node provisioning: very nice in a cloud environment, we are in AWS and have auto scale groups set up for our databases. When a new node comes online, it joins the cluster and gets a full copy of the existing database from one of the other nodes, using xtrabackup. The cluster manages which nodes are considered in-sync. Highly Available: Unlike traditional master-master with slaves replication, any node in the cluster can accept writes and be considered the primary master database. So no need for the drama of failover and slave promotion of a slave or the need to preform a failover from one master to another. Either scenario typically requires or causes downtime and involves the risk of breaking MySQL replication. Since cluster is synchronous and has multi-master capabilities, failover can happen at anytime without the inherent risks of traditional MySQL replication topologies.
  4. We’ve decided to test this out. Our first project was a Managed MySQL Service using PXC as the database back-end Fully Managed: in house by engineers that care about this single service and it’s individual clients. Want to remove the burden of developers having to set requirements for instance size, how much storage expected, provisioned IOPs, which Availability zones/subnets/VPC’s, etc? Simple to Deploy: request a new database, Ops creates it or maybe an app in the future. We give the developer an endpoint and a set users for access to a MySQL database. Plus a kibana dashboard, so they can monitor how things are working, slow queries, too many queries, etc. DevOps has instrumentation to determine total load on all of the nodes for scaling purposes. Easy to Scale: add more nodes, split the cluster up, all behind ELB and HAProxy Replication: multi-master, synchronous, Global Transaction IDs, plus we can use asynchronous MySQL replication to build out additional slave nodes for increased read traffic, or replicate from external clusters/servers into this cluster or out of it for regional capabilities. Reliable: no single points of failure, reliable crossover/switch between servers, availability zones and (in the future) regions, with good failure detection to reduce impact of crossovers/switches of resources ELB->HAProxy->Percona Cluster spread, out over multiple Availability zones in the AWS cloud
  5. When databases are created on the cluster, we make haproxy config changes to route writes to one node in the cluster and reads are sent to the remaining nodes in the cluster. Writes for database1 go to node1, reads for database1 go to nodes 2 and 3 Writes for database2 go to node2, reads for database2 go to nodes 1 and 3 Writes for database3 go to node3, reads for database3 go to nodes 1 and 2 If we had a database4 Writes for database4 go to node1, reads for database4 go to nodes 2 and 3 … If we run into cluster members dropping out because of read or write loads, we can add more cluster nodes and continue to spread those loads over more nodes or add dedicated MySQL async read slaves. At some point the size of the cluster becomes a problem for galera replication (research indicates ~9 nodes) and we will need to split the cluster up into several clusters. The system and database configurations are in SALT so it is a fairly easy exercise to create another cluster. Routing of queries is handled by the ELB and HAProxy servers so adding and removing cluster nodes and async slaves, or whole clusters will not be a problem. The application still uses the same endpoint, but that endpoint would be pointed to another cluster.
  6. Synchronous Replication: virtually synchronous, cluster uses a form of optimistic locking to apply transactions to the master. Much faster than a two phase commit process, more like a fire and forget operation. – helps scale out reads on the cluster Multi-master: you can read and write from any node in the cluster. Suggested to write to only one node, because of optimistic locking model, conflicting writes from other nodes will be rolled back on the losing node. -- Writing to a single node for each database avoids potential roll backs and data conflicts, and writing to all nodes makes better use of the infrastructure. Parallel Applying: unlike MySQL async replication which is single threaded, once transactions are applied to a node you can have multiple threads apply those transactions on the other nodes. This may or may not work depending on your implementation of referential integrity, namely the use/misuse of foreign keys. These rules can be relaxed but you add some risks of data inconsistencies. -- increase the level of concurrency between writes and reads on individual nodes. Data Consistency: each node has a full copy of the entire database, which is kept in-sync via synchronous replication. If an inconsistency is detected the node will be removed from the cluster. -- HAProxy in concert with local Xinetd scripts can tell when a node is inconsistent or out of sync using galera’s internal status variables. Automatic node provisioning: very nice in a cloud environment, we are in AWS and have auto scale groups set up for our databases. When a new node comes online, it joins the cluster and gets a full copy of the existing database from one of the other nodes, using xtrabackup. The cluster manages which nodes are considered in-sync. -- allows scaling to happen behind the scenes Highly Available: Unlike traditional master-master with slaves replication, any node in the cluster can accept writes and be considered the primary master database. So no failover and promotion of a slave to be the new master or the need to preform a failover from one master to another. Either scenario requires downtime and involves the risk of breaking MySQL replication. Since cluster is synchronous and multi-master capabilities, failover can happen at anytime without the inherent risks of traditional MySQL replication topologies. -- reliable crossover/switches between servers