SlideShare ist ein Scribd-Unternehmen logo
1 von 78
XtraDB Cluster
Die neue MySQL HA Lösung
Florian Pfeiffer
   @derfloh




                   2
Platform Engineer




                    3
4
5
Global Trade Publishing   Global Education & Science     Holtzbrinck Media

                                                           Holtzbrinck Digital




                                                       Newspapers & Investments




                                                         Holtzbrinck Ventures




                                                                                  6
11.000 Fragen / Tag

                 130Gb Datenbank
                                                         134 Mio. PIs / Monat
~60 Server
                        Gutefrage.net
                                              4 Datenbankserver

 loggen 100 Mio Datenpunkte/Tag


                                   35.000 Antworten / Tag




                                                                                7
Hochverfügbarkei




                   8
Hochverfügbarkei




                   9
Redundanz




            10
Failover




           11
Wahrscheinlichkeiten...
1 Server = P

2 Server = P/2

.....




                          12
Datenbanken


       Service




       Daten




                 13
Service <-> Daten
  Verfügbarkeit




                    14
Service vs. Daten




                    15
Replikation




              16
Asynchron




            17
Asynchron




            18
Asynchron




            Cosmiq - DB Replication delay check
            Gutefrage - Alle LoggedIn auf Master




                                                   19
Synchron




           20
Synchron




           21
„Dafür setze ich DRBD ein...“




                                22
„Dafür setze ich DRBD ein...“




                                23
Percona XtraDB   WSREP   Galera




                                  24
XtraDB Cluster




                 25
Virtually Synchronous




                        26
Multi Master: MySQL




                      27
Multi Master: XtraDB




                       28
Parallel Apply: MySQL




                        29
Parallel Apply: XtraDB




                         30
Datenkonsistenz




                  31
Zusätzliche Nodes
                           Join




                    Data




                                  32
State Transfer




                 33
Gesamte Daten


Snapshot State Transfer


 per MySQLDump, Rsync oder XtraBackup




                                        34
Delta


Incremental State Transfer




                             35
Das klingt ja alles schön&gut, aber...




                                         36
CAP Theorem
                                                      Konsistenz
                                                           C



                                                 A                   P
                                           Verfügbarkeit       Partitionstoleranz




http://de.wikipedia.org/wiki/CAP-Theorem
                                                                                    37
Network Failure MySQL




                        Verfügbarkeit aller Systeme
                        aber
                        Dateninkonsistenz




                                                      38
Network Failure XtraDB




                         Nicht alle Systeme verfügbar
                         aber
                         Datenkonsistenz




                                                        39
Split Brain
                          ?
    ?
            ?
                              ?

?
        ?
                      ?

                                  40
Split Brain

      Cluster erst sinnvoll ab 3 Nodes (o. 2 Nodes + 1 Arbitrator)




                                                                     41
Einschränkungen


MyISAM Support experimentell

Optimistic locking




                               42
Locking
     Transaktion 1                        Transaktion 2


Begin                                Begin
Update t where id=10 ...             Update t where id=10 ...
...
Commit                                   Wartet auf Tx1




                                                                43
Optimistic Locking
     Transaktion 1                           Transaktion 2


                                        Begin
Begin
                                        Update t where id=10 ...
Update t where id=10 ...
                                        ...
...
                                        Commit
Commit
                                             Fehler wegen
                                              Row Conflict

                                                                   44
Das schwächste Glied in der Kette
        bestimmt die Schreibperformance




                                          Bild: Duff Axsom / Flickr   45
Das schwächste Glied in der Kette

       Write in                     Write in
       Confirm out                   Confirm out




                      write        Write out
                                   Confirms in


                    all confirmed


                                                 46
Skalierbarkeit




                 47
Schreiben
 Kein Gewinn




               48
Lesen
 Linear




          49
XtraDB & HAProxy




                   50
XtraDB & HAProxy




                   51
52
show status like ´wsrep%´

 .....
 wsrep_local_state           |4
 wsrep_local_state_comment   | Synced (6)
 wsrep_cluster_status        | Primary
 ......




                                            53
Achtung




          54
Nachtschicht




               55
Split Brain




              56
Umzug



        Rechenzentrum




                        57
Bild: spine / Flickr   58
RZ alt   RZ neu




                  59
RZ alt           RZ neu
?
                     ?                ?

                                  ?



    ?
                 ?        ?

                                          60
RZ alt   RZ neu




                  61
Schrank 1   Schrank 2




                        62
Anderer Provider




Schrank 1                      Schrank 2




                                           63
pc.ignore_sb = 1




                   64
Constraints




              65
CREATE TABLE customer (id INT NOT NULL,
                       PRIMARY KEY (id));




CREATE TABLE phone (id INT NOT NULL,
                    customer_id INT NOT NULL,
                    PRIMARY KEY (id),
                    FOREIGN KEY (customer_id)
                              REFERENCES customer(id)
);




                                                        66
delete from customer where id=5;




                                   67
delete from customer where id=5;

               Cannot delete or update a parent row:
               a foreign key constraint fails




                                                       68
WTF?


[ERROR] Slave SQL: Could not execute Delete_rows event on
table somedb.some_table; Can't find record in 'some_table',
Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND;
[ERROR] WSREP: Failed to apply trx: source:
1337a766-b992-11e1-0800-185c16a204a2 version: 2 local: 0 state:
CERTIFYING flags: 1 conn_id: 52899913 trx_id: 3397040790
[ERROR] WSREP: Failed to apply app buffer: ...
[ERROR] WSREP: Node consistency compromized, aborting...




                                                                  69
delete from customer where id=5;

                Cannot delete or update a parent row:
                a foreign key constraint fails




              Aborting




                                                        70
delete from customer where id=5;

                Cannot delete or update a parent row:
                a foreign key constraint fails

                         Aborting




              Aborting




                                                        71
delete from customer where id=5;

                Cannot delete or update a parent row:
                a foreign key constraint fails

                         Aborting




              Aborting          Aborting




                                                        72
delete from customer where id=5;

                       Cannot delete or update a parent row:
                       a foreign key constraint fails



           ?
                   ?          Aborting



       ?
               ?   Aborting          Aborting




                                                               73
delete from customer where id=5;

                    Cannot delete or update a parent row:
                    a foreign key constraint fails

                             Aborting



   Disconnected


                  Aborting          Aborting




                                                            74
Ich will‘s selber testen

                            http://www.mysqlperformanceblog.com




z.B. http://www.mysqlperformanceblog.com/2012/06/20/percona-xtradb-cluster-reference-architecture-with-haproxy/




                                                                                                                  75
Kann ich es produktiv einsetzen?




                                   76
JA!




      77
Noch gute Fragen?
    http://joind.in/7339


      Florian Pfeiffer
      Engineer                              gutefrage.net GmbH
                                            Ein Unternehmen der
      Tel +49 89 5151 46-122                Verlagsgruppe Georg von Holtzbrinck
      Fax +49 89 5151 46-214                Sonnenstrasse 14
      Mail florian.pfeiffer@gutefrage.net   80331 München

Weitere ähnliche Inhalte

Andere mochten auch

Folleto - Barometro de Marketing Digital y E-Commerce Empresas
Folleto - Barometro de Marketing Digital y E-Commerce EmpresasFolleto - Barometro de Marketing Digital y E-Commerce Empresas
Folleto - Barometro de Marketing Digital y E-Commerce EmpresasDATA E
 
Bandeja de entrada de gmail
Bandeja de entrada de gmailBandeja de entrada de gmail
Bandeja de entrada de gmaildmchepe
 
Ansprechpartner schweiz juli 2013
Ansprechpartner schweiz juli 2013Ansprechpartner schweiz juli 2013
Ansprechpartner schweiz juli 2013ICV_eV
 
Www.brennerplan.ch_stichwortindex.php
  Www.brennerplan.ch_stichwortindex.php  Www.brennerplan.ch_stichwortindex.php
Www.brennerplan.ch_stichwortindex.phpbrennerplan
 
Campaña publicitaria yanbal
Campaña publicitaria yanbalCampaña publicitaria yanbal
Campaña publicitaria yanbalkathyperez0416
 
Modaclubmx Otoño Linea 2015 2
Modaclubmx Otoño Linea 2015 2Modaclubmx Otoño Linea 2015 2
Modaclubmx Otoño Linea 2015 2Ph Multimarcas
 
Gestoría administrativa
Gestoría administrativaGestoría administrativa
Gestoría administrativaDiego Armando
 
Ocioatlantico- Rias Altas (Galicia): Turismo Juvenil y Escolar
Ocioatlantico- Rias Altas (Galicia): Turismo Juvenil y EscolarOcioatlantico- Rias Altas (Galicia): Turismo Juvenil y Escolar
Ocioatlantico- Rias Altas (Galicia): Turismo Juvenil y Escolarocioatlantico
 
Manual practico análisis de peligros
Manual practico análisis de peligrosManual practico análisis de peligros
Manual practico análisis de peligrosHECTOR TORRES
 
Revolución científica
Revolución científicaRevolución científica
Revolución científicaobarfer
 

Andere mochten auch (13)

Folleto - Barometro de Marketing Digital y E-Commerce Empresas
Folleto - Barometro de Marketing Digital y E-Commerce EmpresasFolleto - Barometro de Marketing Digital y E-Commerce Empresas
Folleto - Barometro de Marketing Digital y E-Commerce Empresas
 
Bandeja de entrada de gmail
Bandeja de entrada de gmailBandeja de entrada de gmail
Bandeja de entrada de gmail
 
Ansprechpartner schweiz juli 2013
Ansprechpartner schweiz juli 2013Ansprechpartner schweiz juli 2013
Ansprechpartner schweiz juli 2013
 
Www.brennerplan.ch_stichwortindex.php
  Www.brennerplan.ch_stichwortindex.php  Www.brennerplan.ch_stichwortindex.php
Www.brennerplan.ch_stichwortindex.php
 
Campaña publicitaria yanbal
Campaña publicitaria yanbalCampaña publicitaria yanbal
Campaña publicitaria yanbal
 
Modaclubmx Otoño Linea 2015 2
Modaclubmx Otoño Linea 2015 2Modaclubmx Otoño Linea 2015 2
Modaclubmx Otoño Linea 2015 2
 
Gestoría administrativa
Gestoría administrativaGestoría administrativa
Gestoría administrativa
 
Ocioatlantico- Rias Altas (Galicia): Turismo Juvenil y Escolar
Ocioatlantico- Rias Altas (Galicia): Turismo Juvenil y EscolarOcioatlantico- Rias Altas (Galicia): Turismo Juvenil y Escolar
Ocioatlantico- Rias Altas (Galicia): Turismo Juvenil y Escolar
 
Folk song
Folk songFolk song
Folk song
 
Manual practico análisis de peligros
Manual practico análisis de peligrosManual practico análisis de peligros
Manual practico análisis de peligros
 
Cebreiro 1
Cebreiro 1Cebreiro 1
Cebreiro 1
 
Revolución científica
Revolución científicaRevolución científica
Revolución científica
 
100 dinamicas-para-adultos
100 dinamicas-para-adultos100 dinamicas-para-adultos
100 dinamicas-para-adultos
 

XtraDB Cluster

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. Chef / Varnish / ...\n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. Zeitspanne nach Commit, in dem die Nodes die Daten zwar best&amp;#xE4;tigt, aber noch nicht auf Platte geschrieben haben\n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. haproxy als tutorial\n\n
  51. \n
  52. Keepalive\n\n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. warum haben wir gewechselt... MMM Master Drop database... Umzug ein master/RZ\nperformanter\n\n
  78. \n