<Insert Picture Here>




MySQL Cluster Product Overview
Wagner Bianchi – contato@wagnerbianchi.com
Disclaimer


 The preceding 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 decisions. The
 development, 2 release, and timing of any features or
 functionality described for Oracle’s products remains
 at the sole discretion of Oracle.




                                                         2
Industry Leaders Rely on MySQL




 Web & Enterprise                OEM & ISVs



                     Cloud


                                              3
Agenda


• MySQL Cluster Product Overview
  –   O que é o MySQL Cluster?
  –   Componentes do MySQL Cluster
  –   MySQL Cluster Manager ™
  –   Casos de Utilização
  –   Benchmarks


• MySQL Cluster 7.2




                                     4
O que é o MySQL Cluster?




                           5
Mapping HA Architectures to Availability




                                           6
Multi-Data Center Scalability
Geographic Replication

                                • Replicate complete
                                  clusters across data
                                  centers
                                  – DR & data locality
                                  – Fully active/active
       Geographic                 – No passive resources
       Replication
                                • Split individual clusters
                                  across data centers
                                  – Synchronous replication
                                    & auto-failover between
                                    sites
                                  – Delivered as part of
                                    MySQL Cluster 7.2 DMR


                                                           7
Mapping Applications to HA Technology
                                                                               Shared-Nothing,
                                        Database          Clustered /
           Applica ons                                                         Geo-Replicated
                                       Replica on         Virtualized
                                                                                   Cluster
        E-Commerce / Trading                     (1)
        Session Management                       (1)
   User Authen ca on / Accoun ng                (1)
         Feeds, Blogs, Wikis

                OLTP                             (1)
         Data Warehouse/BI

        Content Management

                CRM

            Collabora on

         Packaged So ware
       Network Infrastructure

  Core Telco Apps (HLR/HSS/SDP…)

1: Replication used in combination with cluster or virtualization – based HA




                                                                                                 8
MySQL Cluster


• O MySQL Cluster é formado por 3 componentes:
  – Management Node: permite a realização de tarefas
    administrativas como monitoramento dos nós, backup dos
    nós de dados do cluster e outras – seu binário é o ndb_mgmd;

  – Data ou Storage Node: responsável por processar e
    armazenar dados dos bancos de dados localizados no cluster
    – seu binário é o ndbd ou ndbmtd;

  – API ou SQL Node: este é o nó que recebe as conexões das
    aplicações e enviam e requisitam dados armazenados nos
    Data Nodes – seu binário é o mysqld;




                                                                   9
MySQL Cluster - Auto-Partitioning


      Table T1                      Data Node 1




                     P1
                                    Data Node 2

                     P2

                     P3             Data Node 3


                     P4

                                    Data Node 4




                                                  10
MySQL Cluster - Auto-Partitioning


      Table T1                      Data Node 1

                                    F1



                     P1
                                    Data Node 2

                     P2

                     P3             Data Node 3


                     P4

                                    Data Node 4




                                                  11
MySQL Cluster - Auto-Partitioning


      Table T1                      Data Node 1

                                    F1



                     P1
                                    Data Node 2

                                              F1
                     P2

                     P3             Data Node 3


                     P4

                                    Data Node 4




                                                   12
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1



                    P1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3


                    P4

                                    Data Node 4




                                                   13
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3


                    P4

                                    Data Node 4




                                                   14
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2
                    P4

                                    Data Node 4




                                                   15
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2
                    P4

                                    Data Node 4

                                              F2




                                                   16
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2
                    P4

                                    Data Node 4

                                    F4        F2




                                                   17
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2        F4
                    P4

                                    Data Node 4

                                    F4        F2




                                                   18
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1                        Node Group 1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2        F4
                    P4

                                    Data Node 4

                                    F4        F2




                                                       19
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1                        Node Group 1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2        F4
                    P4
                                              Node Group 2
                                    Data Node 4

                                    F4        F2




                                                       20
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1                        Node Group 1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2        F4
                    P4
                                              Node Group 2
                                    Data Node 4

                                    F4        F2




                                                       21
MySQL Cluster - Auto-Partitioning

     Table T1                       Data Node 1

                                    F1        F3



                    P1                        Node Group 1
                                    Data Node 2

                                    F3        F1
                    P2

                    P3              Data Node 3

                                    F2        F4
                    P4
                                              Node Group 2
                                    Data Node 4

                                    F4        F2




                                                       22
MySQL Cluster - Auto-Partitioning

     Table T1

                                    Scalability   a
                    P1              Performanc
                                         e
                    P2
                                        HA        a
                    P3              Ease of use

                    P4              SQL/Joins     a
                                       ACID       a
                                    Transaction
                                         s



                                                      23
MySQL Cluster




                24
MySQL Cluster


• Recomenda-se que:
  – todos os componentes sejam pelo menos duplicados, tendo
    uma instalação com no mínimo 6 nodes dentro do cluster;
  – o cluster seja colocado em uma sub-rede que possibilite
    trafegar dados somente do cluster para que não haja perda
    de pacotes;
  – todas as máquinas que figuram SQL e Storage node tenham
    as mesmas configurações para evitar bottlenecks;
  – todos os binários de todos os componentes sejam da mesma
    versão e release do produto;




                                                                25
Comparison
                                  MySQL                                      Oracle VM               Solaris              MySQL
   HA Technology                                           WSFC*
                                 Replication                                 Template                Cluster              Cluster
                                  All supported by       Windows Server        Oracle Linux         Oracle Solaris      All supported by
    Platform Support              MySQL Server **            2008                                                      MySQL Cluster ****
                                     All (InnoDB             InnoDB               InnoDB              All (InnoDB        NDB (MySQL
Supported Storage Engine           recommended)                                                     recommended)           Cluster)

     Auto IP Failover                    No                    Yes                 Yes                     Yes                Yes

 Auto Database Failover                  No                    Yes                 Yes                     Yes                Yes

      Auto Data                          No               N/A – Shared         N/A – Shared         N/A – Shared              Yes
                                                            Storage              Storage              Storage
   Resynchronization
      Failover Time                 User / Script           5 seconds +         5 seconds +          5 seconds +       1 Second or Less
                                    Dependent            InnoDB Recovery     InnoDB Recovery      InnoDB Recovery
                                                              Time***             Time***              Time***
                                Asynchronous / Semi-      N/A – Shared         N/A – Shared         N/A – Shared         Synchronous
    Replication Mode                Synchronous             Storage              Storage              Storage
                                No, distributed across         Yes                 Yes                     Yes           No, distributed
     Shared Storage                     nodes                                                                            across nodes
                                  Master & Multiple      Active / Passive    Active / Passive      Active / Passive      255 + Multiple
      No. of Nodes                    Slaves             Master + Multiple   Master + Multiple     Master + Multiple        Slaves
                                                              Slaves              Slaves                Slaves

 Availability Design Level             99.9%                 99.95%               99.99%                  99.99%           99.999%


                                     * Windows Server 2008R2 Failover Clustering
                          ** http://www.mysql.com/support/supportedplatforms/database.html
                 *** InnoDB recovery time dependent on cache and database size, database activity, etc.
                          **** http://www.mysql.com/support/supportedplatforms/cluster.html


                                                                                                                                       26
MySQL Cluster Manager ™


                          •   Funciona através do
                              MySQL Enterprise
                              Monitor;

                          •   Permite fazer start,
                              restart e stop de
                              Storage Nodes
                              através de Interface
                              Gráfica;

                          •   Live Demo:
                              http://bit.ly/rqjQRp



                                                     27
MySQL Cluster Manager ™

           MySQL Cluster nodes automatically restarted
                    after configuration change




                                                         28
Benchmarks – Scale-Out




    Aumento de servidores faz que haja aumento na escala,
    aumentando a capacidade de resolução de requisições!


                                                            29
MySQL Cluster Architecture




                                        REST         LDAP
                            Application Nodes                              Scalability
                                                                           Performanc
                                                                                e
             Node Group 1                   Node Group 2
                                                                               HA
                      F1                                    F2             Ease of use
             Node 1




Cluster                                     Node 3               Cluster
 Mgr                                                              Mgr
                      F3                                    F4
                                                                           SQL/Joins     a
                      F3                                    F4                ACID       a
             Node 2




                                            Node 4




                      F1                                    F2             Transaction
                                 Data                                           s
                                Nodes



                                                                                         30
MySQL Cluster Architecture




                                        REST         LDAP
                            Application Nodes                              Scalability
                                                                           Performanc
                                                                                e
             Node Group 1                   Node Group 2
                                                                               HA        a
                      F1                                    F2             Ease of use
             Node 1




Cluster                                     Node 3               Cluster
 Mgr                                                              Mgr
                      F3                                    F4
                                                                           SQL/Joins     a
                      F3                                    F4                ACID       a
             Node 2




                                            Node 4




                      F1                                    F2             Transaction
                                 Data                                           s
                                Nodes



                                                                                         31
Wagner Bianchi




É especialista em MySQL e outros servidores de bancos de dados
relacionais como Oracle e SQL Server. Formado em Gerenciamento de
Bancos de Dados, com MBA em Administração de Empresas pela
Fundação Getúlio Vargas e Pós-Graduando em Bancos de Dados pela
Universidade Gama Filho do Distrito Federal, possui várias
certificações, entre elas a SCMA, SCMDEV, SCMDBA e SCMCDBA.
Atualmente é Consultor Sênior em bancos de dados pela
WAGNERBIANCHI.COM.




                                                                    32

MySQL Cluster Product Overview

  • 1.
    <Insert Picture Here> MySQLCluster Product Overview Wagner Bianchi – contato@wagnerbianchi.com
  • 2.
    Disclaimer The precedingis 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 decisions. The development, 2 release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 2
  • 3.
    Industry Leaders Relyon MySQL Web & Enterprise OEM & ISVs Cloud 3
  • 4.
    Agenda • MySQL ClusterProduct Overview – O que é o MySQL Cluster? – Componentes do MySQL Cluster – MySQL Cluster Manager ™ – Casos de Utilização – Benchmarks • MySQL Cluster 7.2 4
  • 5.
    O que éo MySQL Cluster? 5
  • 6.
    Mapping HA Architecturesto Availability 6
  • 7.
    Multi-Data Center Scalability GeographicReplication • Replicate complete clusters across data centers – DR & data locality – Fully active/active Geographic – No passive resources Replication • Split individual clusters across data centers – Synchronous replication & auto-failover between sites – Delivered as part of MySQL Cluster 7.2 DMR 7
  • 8.
    Mapping Applications toHA Technology Shared-Nothing, Database Clustered / Applica ons Geo-Replicated Replica on Virtualized Cluster E-Commerce / Trading (1) Session Management (1) User Authen ca on / Accoun ng (1) Feeds, Blogs, Wikis OLTP (1) Data Warehouse/BI Content Management CRM Collabora on Packaged So ware Network Infrastructure Core Telco Apps (HLR/HSS/SDP…) 1: Replication used in combination with cluster or virtualization – based HA 8
  • 9.
    MySQL Cluster • OMySQL Cluster é formado por 3 componentes: – Management Node: permite a realização de tarefas administrativas como monitoramento dos nós, backup dos nós de dados do cluster e outras – seu binário é o ndb_mgmd; – Data ou Storage Node: responsável por processar e armazenar dados dos bancos de dados localizados no cluster – seu binário é o ndbd ou ndbmtd; – API ou SQL Node: este é o nó que recebe as conexões das aplicações e enviam e requisitam dados armazenados nos Data Nodes – seu binário é o mysqld; 9
  • 10.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 P1 Data Node 2 P2 P3 Data Node 3 P4 Data Node 4 10
  • 11.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 P1 Data Node 2 P2 P3 Data Node 3 P4 Data Node 4 11
  • 12.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 P1 Data Node 2 F1 P2 P3 Data Node 3 P4 Data Node 4 12
  • 13.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 P4 Data Node 4 13
  • 14.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 P4 Data Node 4 14
  • 15.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 P4 Data Node 4 15
  • 16.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 P4 Data Node 4 F2 16
  • 17.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 P4 Data Node 4 F4 F2 17
  • 18.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Data Node 4 F4 F2 18
  • 19.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Node Group 1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Data Node 4 F4 F2 19
  • 20.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Node Group 1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Node Group 2 Data Node 4 F4 F2 20
  • 21.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Node Group 1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Node Group 2 Data Node 4 F4 F2 21
  • 22.
    MySQL Cluster -Auto-Partitioning Table T1 Data Node 1 F1 F3 P1 Node Group 1 Data Node 2 F3 F1 P2 P3 Data Node 3 F2 F4 P4 Node Group 2 Data Node 4 F4 F2 22
  • 23.
    MySQL Cluster -Auto-Partitioning Table T1 Scalability a P1 Performanc e P2 HA a P3 Ease of use P4 SQL/Joins a ACID a Transaction s 23
  • 24.
  • 25.
    MySQL Cluster • Recomenda-seque: – todos os componentes sejam pelo menos duplicados, tendo uma instalação com no mínimo 6 nodes dentro do cluster; – o cluster seja colocado em uma sub-rede que possibilite trafegar dados somente do cluster para que não haja perda de pacotes; – todas as máquinas que figuram SQL e Storage node tenham as mesmas configurações para evitar bottlenecks; – todos os binários de todos os componentes sejam da mesma versão e release do produto; 25
  • 26.
    Comparison MySQL Oracle VM Solaris MySQL HA Technology WSFC* Replication Template Cluster Cluster All supported by Windows Server Oracle Linux Oracle Solaris All supported by Platform Support MySQL Server ** 2008 MySQL Cluster **** All (InnoDB InnoDB InnoDB All (InnoDB NDB (MySQL Supported Storage Engine recommended) recommended) Cluster) Auto IP Failover No Yes Yes Yes Yes Auto Database Failover No Yes Yes Yes Yes Auto Data No N/A – Shared N/A – Shared N/A – Shared Yes Storage Storage Storage Resynchronization Failover Time User / Script 5 seconds + 5 seconds + 5 seconds + 1 Second or Less Dependent InnoDB Recovery InnoDB Recovery InnoDB Recovery Time*** Time*** Time*** Asynchronous / Semi- N/A – Shared N/A – Shared N/A – Shared Synchronous Replication Mode Synchronous Storage Storage Storage No, distributed across Yes Yes Yes No, distributed Shared Storage nodes across nodes Master & Multiple Active / Passive Active / Passive Active / Passive 255 + Multiple No. of Nodes Slaves Master + Multiple Master + Multiple Master + Multiple Slaves Slaves Slaves Slaves Availability Design Level 99.9% 99.95% 99.99% 99.99% 99.999% * Windows Server 2008R2 Failover Clustering ** http://www.mysql.com/support/supportedplatforms/database.html *** InnoDB recovery time dependent on cache and database size, database activity, etc. **** http://www.mysql.com/support/supportedplatforms/cluster.html 26
  • 27.
    MySQL Cluster Manager™ • Funciona através do MySQL Enterprise Monitor; • Permite fazer start, restart e stop de Storage Nodes através de Interface Gráfica; • Live Demo: http://bit.ly/rqjQRp 27
  • 28.
    MySQL Cluster Manager™ MySQL Cluster nodes automatically restarted after configuration change 28
  • 29.
    Benchmarks – Scale-Out Aumento de servidores faz que haja aumento na escala, aumentando a capacidade de resolução de requisições! 29
  • 30.
    MySQL Cluster Architecture REST LDAP Application Nodes Scalability Performanc e Node Group 1 Node Group 2 HA F1 F2 Ease of use Node 1 Cluster Node 3 Cluster Mgr Mgr F3 F4 SQL/Joins a F3 F4 ACID a Node 2 Node 4 F1 F2 Transaction Data s Nodes 30
  • 31.
    MySQL Cluster Architecture REST LDAP Application Nodes Scalability Performanc e Node Group 1 Node Group 2 HA a F1 F2 Ease of use Node 1 Cluster Node 3 Cluster Mgr Mgr F3 F4 SQL/Joins a F3 F4 ACID a Node 2 Node 4 F1 F2 Transaction Data s Nodes 31
  • 32.
    Wagner Bianchi É especialistaem MySQL e outros servidores de bancos de dados relacionais como Oracle e SQL Server. Formado em Gerenciamento de Bancos de Dados, com MBA em Administração de Empresas pela Fundação Getúlio Vargas e Pós-Graduando em Bancos de Dados pela Universidade Gama Filho do Distrito Federal, possui várias certificações, entre elas a SCMA, SCMDEV, SCMDBA e SCMCDBA. Atualmente é Consultor Sênior em bancos de dados pela WAGNERBIANCHI.COM. 32

Editor's Notes

  • #7 To reflect apps have different uptime requirements, there are multiple archs that can be used to deliver HAGroup into 3 main categories:Database Replication (typically implemented across loosely coupled clusters of servers);Tightly Coupled Clusters &amp; Virtualized Systems;Shared-Nothing, Geographically-Replicated Clusters. each of these architectures offers progressively higher levels of uptime, but this needs to be balanced against potentially greater levels of cost and complexity each will incur.  Simply deploying a high availability architecture is not a guarantee of actually delivering HA. A poorly implemented shared-nothing cluster could easily deliver lower levels of availability than a simple data replication solution.
  • #8 Through geo-replication, had the ability to replicate entire cluster across data centers – for DR and data localityActive/active, so both clusters can accept writes, then replication mechanisms detect and handle conflicts, so no passive resourcesWithin the 7.2DMR, also have the ability to split a single cluster across data centers
  • #9 By understanding the availability requirements of each application, it is possible to map the database deployment model to the appropriate HA architecture.  This slide maps common application types to architectures, based on best practices observed from the MySQL user base. Of course, each organization is unique, and so while the mapping may not be appropriate for every use-case, it does serve as a reference point to begin investigating those HA architectures which can potentially best serve your own requirements.Look at replication – this is used with many apps, very often in conjunction with a complimentary HA tech – in this case repl often used for salabilityRepl on its own good for feeds/blogs/wikis, content mgmt, collab type appsMiddle tier = mainstreamShard nothing – fin apps, high volume OLTP, core telecoms or military apps
  • #27 This is a quick comparison of the different approaches to MySQL HA - See range of certified and supported HA solutions extend from 99.9% to 99.999% availabilityCompare platform support, failover capability, data syncronisation, design level for uptimeDetailed version of this chart in a whitepaper will provide link at in the end