galera replication
play

Galera Replication Synchronous Multi-Master Replication for InnoDB - PowerPoint PPT Presentation

Galera Replication Synchronous Multi-Master Replication for InnoDB ...well, why not for any other DBMS as well Seppo Jaakola Alexey Yurchenko Contents 1.Galera Cluster 2.Replication API 3.Benchmarking 4.Installation & Management


  1. Galera Replication Synchronous Multi-Master Replication for InnoDB ...well, why not for any other DBMS as well Seppo Jaakola – Alexey Yurchenko

  2. Contents 1.Galera Cluster 2.Replication API 3.Benchmarking 4.Installation & Management 5.Galera Project April 14, 2010 Codership @ MySQL Conference 2010 2

  3. Replication for Transactional DBMS DBMS April 14, 2010 Codership @ MySQL Conference 2010 3

  4. Replication API Interface for replication system Interface for replication system ➔ Calls for replication ➔ Calls for replication ➔ Callbacks from replication ➔ Callbacks from replication Plugin framework Plugin framework DBMS repl API April 14, 2010 Codership @ MySQL Conference 2010 4

  5. Pluggable Replicator Provider can be loaded Provider can be loaded at DBMS start at DBMS start DBMS repl API R e p l i c a t i o n P r o v i d e r April 14, 2010 Codership @ MySQL Conference 2010 5

  6. Galera Cluster For MySQL/InnoDB For MySQL/InnoDB InnoDB wsrep G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 6

  7. Galera Cluster For MySQL/InnoDB For MySQL/InnoDB wsrep extension wsrep extension implements replication API implements replication API InnoDB wsrep G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 7

  8. Galera Cluster For MySQL/InnoDB For MySQL/InnoDB wsrep extension wsrep extension implements replication API implements replication API InnoDB wsrep dynamically dynamically G a l e r a loaded library loaded library R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 8

  9. Galera Cluster Clients Transparent connections InnoDB wsrep G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 9

  10. Multi Master Clients Transparent connections Multi- InnoDB master wsrep G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 10

  11. Multi Master Clients Transparent connections Multi- InnoDB InnoDB master wsrep wsrep G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 11

  12. Multi Master Clients Transparent connections Multi- InnoDB InnoDB InnoDB master wsrep wsrep wsrep G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 12

  13. Synchronous Replication Clients Transparent connections Multi- InnoDB InnoDB InnoDB master wsrep wsrep wsrep Synchronous replication G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 13

  14. Galera Replication ● Synchronous multi-master replication ➔ High Availability ● No middle-ware, connections directly to DBMS ➔ Transparency ● Row events, row level locking ➔ Write scalability ● Certification based replication method April 14, 2010 Codership @ MySQL Conference 2010 14

  15. Synchronous Replication Client commit trx wsrep wsrep wsrep G a l e r a R e p l i c a t i o n G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 15

  16. Synchronous Replication Transaction is replicated Client to all nodes => HA commit trx wsrep wsrep wsrep WS WS G a l e r a R e p l i c a t i o n G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 16

  17. Synchronous Replication Transaction is applied at later time Client => virtual synchrony trx trx wsrep wsrep wsrep G a l e r a R e p l i c a t i o n G a l e r a R e p l i c a t i o n April 14, 2010 Codership @ MySQL Conference 2010 17

  18. Certification Based Replication ● Transactions process independently in each cluster node ● Transaction write sets will be replicated at commit time ● Cluster wide conflicts resolved by certification test April 14, 2010 Codership @ MySQL Conference 2010 18

  19. Client MySQL MySQL Query Processing write set applier certification certification write set WS extract test test population replication replication Group Communication April 14, 2010 Codership @ MySQL Conference 2010 19

  20. Client commit MySQL MySQL Commit Processing write set applier certification certification write set WS extract test test population replication replication WS Group Communication April 14, 2010 Codership @ MySQL Conference 2010 20

  21. Client MySQL MySQL Commit Processing write set applier certification certification write set WS extract test test population replication replication WS Group Communication April 14, 2010 Codership @ MySQL Conference 2010 21

  22. Client MySQL MySQL commit Commit Processing write set applier rollback certification certification write set WS extract test test population replication WS replication Group Communication April 14, 2010 Codership @ MySQL Conference 2010 22

  23. Replication API April 14, 2010 Codership @ MySQL Conference 2010 23

  24. Replication API ● Galera integrates closely in DBMS transaction processing ➔ There must be an interface between DBMS and replication system April 14, 2010 Codership @ MySQL Conference 2010 24

  25. Other Replication APIs ● MySQL's API cooking up: ➔ http://forge.mysql.com/wiki/MySQL_Replication:_Walk-through_of_the_new_5.1_and_6.0_features ● Drizzle's API, already there: ➔ http://www.jpipes.com/index.php?/archives/290-Towards-a-New-Modular-Replication-Architecture.html ● MariaDB specifying new API https://lists.launchpad.net/maria-developers/msg01998.html ➔ April 14, 2010 Codership @ MySQL Conference 2010 25

  26. wsrep API ● Codership's replication API ● DBMS agnostic replication interface ● Defines: – Write Set replication for transactions – TO isolation for replicating DDL ● Suitable for different replication modes (sync/async, multi-master, master/slave, PITR...) ● https://launchpad.net/wsrep https://launchpad.net/wsrep April 14, 2010 Codership @ MySQL Conference 2010 26

  27. wsrep API Implementation ● Replication provider library load/unload ● Write set population calls ● Write set replication calls (at commit) ● Prioritized transactions – Lock queue modified – Aborting local victims ● Configuration hooks ● Status hooks ● TO isolation for DDL queries April 14, 2010 Codership @ MySQL Conference 2010 27

  28. Galera Library DBMS wsrep hooks wsrep API dlopen wsrep provider certification Galera replication GCS framework spread gcomm vsbes April 14, 2010 Codership @ MySQL Conference 2010 28

  29. Benchmarking April 14, 2010 Codership @ MySQL Conference 2010 29

  30. Benchmarking ● Tested with several benchmarks – Sysbench, dbt2, DOTS, osdb, jmeter, sqlgen... ● Tested with 'physical hardware' and with Amazon EC2 instances ➔ In general, shows good scalability even with write intensive work loads April 14, 2010 Codership @ MySQL Conference 2010 30

  31. SysBench Benchmarks ● SysBench OLTP mode test ● 1M rows ● EC2 Large instances nodes users trx/s deadlks 95%lat -------------------------------------- 1 18 385 0 0.092 2 36 761 2.54 0.100 3 45 900 3.42 0.103 4 60 1034 4.54 0.120 official 5.1.33 binary: 1 18 451 0 0.079 April 14, 2010 Codership @ MySQL Conference 2010 31

  32. Synchronous WAN Replication ● SysBench OLTP ● 1M rows ● EC2 large instances ● EU → US ● Distance: ~3000 miles ● Ping RTT: ~88 ms April 14, 2010 Codership @ MySQL Conference 2010 32

  33. Installation April 14, 2010 Codership @ MySQL Conference 2010 33

  34. Installing MySQL/Galera Download from www.codership.com Distributions choices: 1.Pre-built RPM or Debian package 2.demo tar distribution 3.Source build April 14, 2010 Codership @ MySQL Conference 2010 34

  35. Demo Distribution ● Pre-built 32/64 bit linux binaries ● Installs in one directory path ● Contains a sample database ● Good for testing/evaluation April 14, 2010 Codership @ MySQL Conference 2010 35

  36. Demo Distribution ● Install as regular user (not root) $ tar xzf mysql-5.1.43-galera-0.7.3-x86_64.tgz ● Node startup by: mysql-galera script – Commands: start | stop | check ● Specify cluster_address – Start first node with address: gcomm:// – Start other nodes with gcomm://<first-node-ip> $ mysql-galera -g gcomm:// start $ mysql-galera -g gcomm://<other-IP> start April 14, 2010 Codership @ MySQL Conference 2010 36

  37. Galera in Cloud ● VPS.net – Nice new cloud computing solution – MySQL/Galera images available ● Amazon EC2 – Extensively tested in EC2 – Deploy .e.g. Ubuntu node and install MySQL/Galera manually – Pre-built image underway April 14, 2010 Codership @ MySQL Conference 2010 37

  38. Cluster Topologies ➔ Use 3 or more nodes for HA ➔ Application load balancing gives best performance ➔ Use load balancer if a single connection point is needed ➔ Reference node can help in joining April 14, 2010 Codership @ MySQL Conference 2010 38

  39. Dedicated Replication Interconnection Public connections Public connections SW 192.168.0.1 192.168.0.2 Min 1 Gb/sec Min 1 Gb/sec replication network 10.0.0.2 10.0.0.1 replication network SW April 14, 2010 Codership @ MySQL Conference 2010 39

Recommend


More recommend