46
Galera in MariaDB 10.4 State of the Art and Plans Seppo Jaakola Codership

Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

  • Upload
    others

  • View
    12

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

Galera in MariaDB 10.4State of the Art and Plans

Seppo JaakolaCodership

Page 2: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

2

➢ Seppo Jaakola➢ One of the Founders of Codership

➢ Codership – Galera Replication developers➢ Partner of MariaDB for developing and supporting MariaDB

Galera Cluster➢ Galera releases since 2009

Page 3: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

3

Agenda

● Galera in 10.4 Status● Galera Cluster Upgrading● Streaming Replication● XA Transaction Support● Spider Cluster

Page 4: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

4

Galera in 10.4 and Beyond

● Group Commit Support <refactor for MariaDB>

● Non Blocking DDL <testing>

● Huge transactions by streaming replication <testing>

● Inconsistency Voting Protocol <testing>

Galera 4.0

v

v

MariaDB 10.4

● Gcache Encryption <implementation>

● MariaDB GTID Compatibility <requirement>

v

v

● XA transaction Support <implementation>

● Spider Cluster <design>

Galera 4.1

v

Page 5: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

Galera Upgradewsrep API Change

Page 6: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

6

API 25

Galera Rolling Upgrades

Galera Replication

read & write

MariaDB

API 25

read & write

MariaDB

API 25

MariaDB

API 25

Upgrade with API #26

Page 7: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

7

API 25

Galera Rolling Upgrades

Galera Replication

read & write

One node upgradedTo API #26

MariaDB

API 25

MariaDB

API 26

read & write

MariaDB

API 25

Upgrade with API #26

Page 8: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

8

API 25

Galera Rolling Upgrades

Galera Replication

read & write

One node upgradedTo API #26

MariaDB

API 26

MariaDB

API 26

read & write

MariaDB

API 25

Upgrade with API #26

Page 9: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

9

API 26

Galera Rolling Upgrades

Galera Replication

read & write

All nodes upgradedTo API #26

MariaDB

API 26

read & write

MariaDB

API 26

read & write

MariaDB

API 26API #26 features nowEnabled in replication

Page 10: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

Streaming ReplicationHuge Transaction Support

Page 11: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

11

Huge Transaction Demo Setup

1. Two nodes

2. Steady load of pure autocommit updates to measure trx throughput

3. A huge table with ~1.5M rows

4. Run update on huge table to modify all rows● → monitor trx/sec rate in the cluster when the

huge transaction kicks in

Page 12: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

12

Impact of Huge Transaction

0

500

1000

1500

2000

2500

3000

3500

4000

4500

Huge Transaction Slave Lag

Trx in master24 secs

Trx in slave9 secs

Page 13: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

13

Streaming Replication

● Transaction is replicated, gradually in small fragments, during transaction processing

● i.e. before actual commit, we replicate a number of small scale fragments

● Size threshold for fragment replication is configurable

● Replicated fragments are applied in slave transactions in all cluster nodes

➔ Fragments hold locks in all nodes and cannot be conflicted later

Page 14: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

14

Streaming Replication

Huge transaction

Galera Replication

Node A Node B

Huge trx

Update, update, update....

Page 15: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

15

Streaming Replication

Huge transaction

Galera Replication

Node A Node B

Huge trx

WS

Update, update, update....

Page 16: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

16

Streaming Replication

Huge transaction

Galera Replication

Node A Node B

Huge trx

WS

Update, update, update....

Page 17: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

17

Streaming Replication

Huge transaction

Galera Replication

Node A Node B

Huge trx

WS

commit

Page 18: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

18

Fragment Transaction

SR transaction pool

SR#1 THD

SR#2 THD

SR#n THD

WSSR trx :2

CF: 0

applier

applier

applier

certification

Page 19: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

19

applier

Fragment Transaction

SR transaction pool

SR#1 THD

SR#2 THD

SR#n THD

WSSR trx :2

CF: 0

applier

applier

ev→apply_event()…ev->apply_event()

wsrep_SR_store->append_frag_apply())

Page 20: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

20

Fragment Transaction

SR transaction pool

SR#1 THD

SR#2 THD

SR#n THD

WSSR trx :2

CF: 1

applier

applier

applier

certification

Page 21: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

21

applier

Fragment Transaction

SR transaction pool

SR#1 THD

SR#2 THD

SR#n THD

WSSR trx :2

CF: 1

applier

applier

trans_commit()

wsrep_SR_store->append_frag_commit())

Page 22: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

22

Configuring Streaming Replication

wsrep_trx_fragment_unit Unit metrics for fragmenting, options are:● bytes WS size in bytes● events # of binlog events● rows # of rows modified● statements # of SQL statements issued

wsrep_trx_fragment_size ● Threshold size (in units), when fragment will be replicated

● 0 = no streaming

Page 23: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

23

Streaming Replication Demo Setup

1. Same scenario as before

2. Configure node1 to fragment huge transaction in 10K batches

● wsrep_trx_fragment_unit = bytes● wsrep_trx_fragment_size = 10000

→ monitor trx/sec rate in the cluster when streaming replication progresses

Page 24: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

24

Streaming Replication

0

500

1000

1500

2000

2500

3000

3500

4000

4500

Streaming Replication

time

trx/

sec

Streaming Replication70 secs

Page 25: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

25

Streaming Replication

0

500

1000

1500

2000

2500

3000

3500

4000

4500

time

trx/

sec

Page 26: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

XA Transactions with Galera 3

Page 27: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

27

XA Transaction Support

XA Start

Node A Node B

smith smith

XA trans

Page 28: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

28

XA Transaction Support

XA Insert into persons ‘’jones’

Node A Node B

smith smith

insertXA trans

Page 29: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

29

XA Transaction Support

XA Prepare

Node A Node B

smith smith

insertXA trans

Page 30: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

30

XA Transaction Support

XA Prepare

Node A Node B

smith smith

insertXA trans

WS

Page 31: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

31

XA Transaction Support

XA Prepare

Node A Node B

smithsmithjones

WSinsertXA trans

insertapply

Page 32: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

32

XA Transaction Support

XA Rollback

Node A Node B

smithsmithjones

insertXA trans

Page 33: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

33

XA Transaction Support

Node A Node B

smithsmithjones

Page 34: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

XA by Streaming Replication

Page 35: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

35

XA Transaction Support

XA Start

Node A Node B

smith smith

XA trans

WS

Page 36: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

36

XA Transaction Support

XA Insert into persons ‘’jones’

Node A Node B

smith smith

insertXA transXA transXA transXA trans

WS

insertSR trans

Page 37: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

37

XA Transaction Support

XA Prepare

Node A Node B

smith smith

insertXA trans

insertSR trans

Page 38: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

38

XA Transaction Support

XA Rollback

Node A Node B

smithsmithjones

insertXA trans

insertSR trans

WSrollback

Page 39: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

39

XA Transaction Support

Node A Node B

smithsmith

Page 40: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

Spider Cluster

Page 41: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

Shard A Shard B

Spider SE

XA XA

A

B

Insert into t values….

Table t

Page 42: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

G a l e r aG a l e r a

Node 1 Node 1

Spider SE

XA XA

Node 2 Node 3 Node 2 garbd

Insert into t values….

A

B

Table t

Page 43: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

G a l e r a

Node 1

G a l e r aG a l e r a

Node 1 Node 1

Spider SE

XA XA

Node 2 Node 3 Node 2 garbd

Node 1Spider SE Node 1Spider SE

Insert into t values….

Page 44: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

Insert into t values (1),(2)shard A shard B

XA start

XA start

Insert (1)

Insert (2)

XA prepare

XA prepare

XA Commit

XA Commit

S p i d e r A C I D

Page 45: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …

Insert into t values (1),(2) Select * from tshard A shard B

XA start

XA start

Insert (1)

Insert (2)

XA prepare

XA prepare

XA Commit

XA Commit

()()

= ()

(1)()= (1)

(1)(2)= (1),(2)

S p i d e r A C I D

Page 46: Galera in MariaDB 10Galera Cluster Galera releases since 2009 3 Agenda Galera in 10.4 Status Galera Cluster Upgrading ... 0 = no streaming 23 Streaming Replication Demo Setup …