SlideShare a Scribd company logo
1 of 50
Download to read offline
Galera

Cluster

Schema Upgrades
Seppo Jaakola
Codership
Agenda
●

Schema Upgrades in Synchronous Cluster

●

DDL Classification

●

Schema Backwards Compatibility

●

Alternatives for Schema Upgrades
●
●
●
●
●

●

TOI
RSU / desync
wsrep_desync / wsrep_on method
Dropping Node for DDL
pt-online-schema-change

Summary
www.codership.com
2
Schema Upgrades
Applications have evolution, and there will be needs to
change database schema in new application revisions
With 24/7 online requirements, the schema upgrade must
happen while the system is online
Synchronous database cluster, requires that all active
nodes must have same data
–

Note that schema may differ, as long as data content is logically same

We need to figure out way(s) to roll schema upgrades in
online cluster with minimal disruption for the service

www.codership.com
3
What is DDL?
SQL statements can be classified in several classes:
DML Data Manipulation Language
–

Transactional data manipulations

–

SELECT, INSERT, UPDATE...

DDL Data Definition Language
–

CREATE..., DROP..., ALTER...

DCL Data Control Language
–

GRANT, REVOKE

TCL Transaction Control Language
…
http://en.wikibooks.org/wiki/MySQL/Language/Definitions:_what_are_DDL,_DML_and_DQL%3F
www.codership.com
4
DML vs DDL
But the bottom line is division between transactional and nontransactional statements:

Transactional SQL
–

All DML on InnoDB

–

NON Transactional SQL

Can be rolled back

●

Not possible to rollback

–

●

DDL, DCL..., DML on non
transactional SE

–

●

–

Requires up-front locking

Galera uses optimistic concurrency control, and depends on possibility to rollback a
conflicting operation
Only transactional SQL can be replicated through Galera transactional replication
For others (DDL, DCL...), we either have to skip replication or use up-front locking
www.codership.com
5
DML vs DDL
Notes on some DDL:
TRUNCATE
–

is DDL!

–

Is fast to execute, but nevertheless has some impact

OPTIMIZE, REPAIR, ANALYZE
–

Table admin commands are now replicated

CREATE / DROP INDEX
–

Hold MDL on affected table, and can stall the
replication

www.codership.com
6
Schema Backward Compatibility
Backward Compatibility

App v1

MySQL
Schema v1

App v1

Schema
Upgrade

MySQL
Schema v2

App
Upgrade

App v2

MySQL
Schema v2

Old application version
must be able to use the
new schema
www.codership.com
9
Backward Compatibility

App v1

MySQL
Schema v1

App
Upgrade

App v2

MySQL
Schema v1

App v2

Schema
Upgrade

MySQL
Schema v2

New application version
must be able to use the
old schema
www.codership.com
10
Backwards Compatibility
New/old application should be able to use both old and
new schema
Application should be backwards compatible
ROW replication between old and new schema should be
possible
Schema change should be backwards compatible

www.codership.com
11
App Backwards Compatibility
New/old application should be able to use both old and
new schema
–

New application can have compatibility mode to detect the version of
underlying database

–

If old app cannot use new schema, the old app must connect to one
node only, which will be the last to upgrade

Dropping tables or columns can be a problem
–

But drops can be done delayed: e.g. in v2 -> v3 upgrade, obsolete v1
elements can be dropped as neither v2 or v3 app will use them any
more

www.codership.com
12
ROW Replication Compatibility
MySQL guarantees ROW replication event compatibility
with some limitations
Newer MySQL versions tolerate more variation between
source and target tables, check out this page for latest
status:
http://dev.mysql.com/doc/refman/5.6/en/replication-features-differing-tables.html
●
●

Source and target can have different number of columns
But columns must be in same order

●

New columns in the end, and must have default values

●

Some data type conversions are also supported
www.codership.com
13
ROW Replication Compatibility

Insert into table-A(col-a,col-b) values (5,7)

col-a

col-b

col-a

Table A

col-b

col-c

Table A

www.codership.com
14
ROW Replication Compatibility

Insert into table-A(col-a,col-b) values (5,7)

col-a

col-b

col-a

col-b

col-c

5

7

5

7

def

Replication

Table A

Table A

www.codership.com
15
STATEMENT Replication
In STATEMENT format, schema compatibility is not an issue
Galera does not currently support STATEMENT replication,
but:
–

Enabling STATEMENT replication is minor task
Consistency is at risk
● Parallel applying must be limited (OFF, Database or Table level)
● STATEMENT replication, in general, is phasing out
Supporting STATEMENT replication for schema upgrades, is one
potential extension we are looking for
●

–

www.codership.com
16
Schema Upgrades in Galera Cluster
Schema Upgrades in Galera
Galera Cluster has two inbuilt methods for DDL replication:
–

TOI – Total Order Isolation

–

RSU – Rolling Schema Upgrade

The method of choice is declared by variable:
wsrep_osu_method = TOI | RSU

Pt-online-schema-change is valid tool for upgrades, these
and other DDL replication alternatives are discussed in
following chapters.

www.codership.com
18
Total Order Isolation
TOI
Total oder Isolation (TOI) is the default DDL replication
method
●

●

●

●

wsrep_osu_method = TOI
“master node” detects DDL at parsing time and sends out replication event
for the SQL statement before even starting the DDL processing
DDL replication happens in STATEMENT format
Every node in the cluster will process the replicated DDL at the same “slot”
in the cluster transaction stream (Total Order)

www.codership.com
20
TOI Replication

ALTER TABLE t1...

Parser
Replication
MySQL

MySQL

Execution

a

Galera
Replication

WS

Seqno
STATEMENT event

G a l e r a R e p l i c a t io n
www.codership.com
21
TOI Replication

ALTER TABLE t1...

Parser

apply

continue

Parser

MySQL

MySQL

Execution

Execution

a

Galera
Replication

WS
Seqno slot
reached
www.codership.com
22
TOI Replication
Pros
–

Strict consistency, all nodes will get same change

–

No worries about schema backwards compatibility

Cons
–

Strict commit order will make every transaction to wait until DDL is
over

Usable, when:
–

DDL is short term

–

Schema change will not be backwards compatible

–

And/or there is maintenance window

Some future work in road map:
–

TOI replication commit order can be relaxed

–

We are working on optimization based on this
www.codership.com
23
Rolling Schema Upgrade
RSU

➢

Rolling Schema Upgrade
wsrep_osu_method=RSU

➢

Will desynchronize the node from replication for the
duration of following DDL command

➢

Incoming replication is buffered

➢

Nothing will be replicated out of the node

➢

When DDL is over, the node will automatically join back
in cluster, and catch up missed transactions from the
buffer

www.codership.com
25
RSU
SET GLOBAL
wsrep_osu_method=RSU
ALTER TABLE t1...

MySQL

MySQL

MySQL

G a l e r a R e p l i c a t io n

a

Galera Replication
www.codership.com
26
RSU

ALTER TABLE

MySQL
MySQL

WS

a

MySQL

WS

Slave queue

Galera Replication
www.codership.com
27
RSU

ALTER TABLE t1...

MySQL

WS

a

MySQL

MySQL

WS

Slave queue

Galera Replication
www.codership.com
28
RSU
Pros
–

DDL will not slow down cluster

–

Automatic re-sync after DDL is over

Cons
–
–

Schema change has to be backwards compatible

–

a

Has global effect, all sessions will be RSU'ed
Only one RSU operation at a time

–

Rolling over cluster is manual operation

www.codership.com
29
wsrep_desync
wsrep_desync
Node can be set to omit flow control by:
mysql> SET GLOBAL wsrep_desync=ON;

A session can be declared to not replicate anything by:
mysql> SET wsrep_on=OFF;
●

●

Running DDL in such a session, will result in local
schema change, and processing of the DDL will not
hold back cluster.
However, all cluster transactions will be replicated to
the node, and if there are conflicts, the DDL will be
aborted.
wsrep_desync+wsrep_on method is good only for
non-confliction operations
www.codership.com
31
wsrep_desync+wsrep_on
SET GLOBAL wsrep_desync=ON;
SET wsrep_on=OFF;
ALTER TABLE t1...

t1

t2

tn

MySQL

a

WS

WS

Slave queue

Galera Replication
www.codership.com
32
wsrep_desync
We are currently working on making better use of
desync mode. The goal is to protect local desynced
transactions from replication aborts.
This way, the DDL will succeed even if there are
conflicts with the cluster. However, cluster replication
will pause at first such conflict and wait until DDL is
complete.
But, this will be future extension, and available in some
of following 3.* release.

www.codership.com
33
Drop a Node for DDL
Dropping Node for DDL
One way to do “manual RSU”, is to drop a node from
cluster and run DDL on the stand-alone node.
Joining the node back must happen through IST, as we
don't want SST to bring back the old schema.
Make sure to protect the node from any production
connections! Load balancers should be configured first to
isolate the node from unwanted connections.
Adjust your gcache size big enough to allow IST after the
DDL is over.

www.codership.com
35
Dropping Node for DDL

Load Balancer

1. configure LB
2. Drop node, e.g.
set global wsrep_cluster_address=gcomm://

MySQL

MySQL

Galera Replication
www.codership.com
36
Dropping Node for DDL

Load Balancer

3. ALTER TABLE t1...

MySQL

MySQL

Galera Replication
www.codership.com
37
Dropping Node for DDL

Load Balancer

4. Join back
set wsrep_cluster_address...

WS

MySQL

WS

IST

MySQL

Galera Replication
www.codership.com
38
Dropping Node for DDL

Load Balancer

5. configure LB

MySQL

MySQL

Galera Replication
www.codership.com
39
pt-online-schema-change
pt-online-schema-change
Tool in Percona Toolkit to run non blocking schema
changes
http://www.percona.com/doc/percona-toolkit/2.2/pt-online-schema-change.html
1. Creates a shadow copy of target table

2. Installs triggers in source table to forward updates to target table
3. Copies source table data in small chunks to target table
4. Renames target table to replace the source table

Pt-osc does not replicate schema changes, but makes it
possible to change schema without interfering with
replication
However, pt-osc requires TOI to be enabled, and TOI
replication will propagate the changes to whole cluster
www.codership.com
41
pt-online-schema-change

updates

t1-new
t1

CREATE similar table
and ALTER

a
www.codership.com
42
pt-online-schema-change

updates

t1-new
t1

a

Install trigger to forward updates
to new table
www.codership.com
43
pt-online-schema-change

updates

t1-new
t1

Copy data in
chunks

a
www.codership.com
44
pt-online-schema-change

updates

t1

t1-new

Copy data in
chunks

a
www.codership.com
45
pt-online-schema-change

updates

t1

t1-old

Rename
tables

a
www.codership.com
46
pt-online-schema-change

updates

t1

Drop old table

a
www.codership.com
47
pt-online-schema-change
Some Caveats:
●

TOI requirement
–
–

●

Pt-osc changes will be run against whole cluster with one go
Could be relaxed, imo

Triggers not supported
–

●

Pt-osc installs new triggers in source table and does not allow any
other triggers to exists in the table

Foreign key support
–

a

Two methods for dealing with FKs

–

Rebuilding child table FK constraint may be needed

–

FK constraint name will be different

www.codership.com
48
Summary
Codership
Schema upgrades require careful planning
➢

Find out backwards compatibility both from application and from ROW
replication perspective

➢

Plan your upgrade process

➢

Rehearse with test cluster

Instant methods:
➢

TOI replication, pt-osc

➢

ROW replication backwards compatibility is not an issue

Rolling methods
➢

RSU, wsrep_desync/wsrep_on, node dropping

➢

Schema backwards compatibility required

www.codership.com
50
Questions?

Thank you for listening!
Happy Clustering :-)

More Related Content

What's hot

Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performancePostgreSQL-Consulting
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxNeoClova
 
Tuning Autovacuum in Postgresql
Tuning Autovacuum in PostgresqlTuning Autovacuum in Postgresql
Tuning Autovacuum in PostgresqlMydbops
 
MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)Kenny Gryp
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기I Goo Lee
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsMydbops
 
Vacuum in PostgreSQL
Vacuum in PostgreSQLVacuum in PostgreSQL
Vacuum in PostgreSQLRafia Sabih
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorJean-François Gagné
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationFrederic Descamps
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksJignesh Shah
 
Maxscale 소개 1.1.1
Maxscale 소개 1.1.1Maxscale 소개 1.1.1
Maxscale 소개 1.1.1NeoClova
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...Severalnines
 
Monitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstatsMonitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstatsBen Mildren
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewRené Cannaò
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기NeoClova
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsCommand Prompt., Inc
 

What's hot (20)

Linux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performanceLinux tuning to improve PostgreSQL performance
Linux tuning to improve PostgreSQL performance
 
Planning for Disaster Recovery (DR) with Galera Cluster
Planning for Disaster Recovery (DR) with Galera ClusterPlanning for Disaster Recovery (DR) with Galera Cluster
Planning for Disaster Recovery (DR) with Galera Cluster
 
Galera Cluster Best Practices for DBA's and DevOps Part 1
Galera Cluster Best Practices for DBA's and DevOps Part 1Galera Cluster Best Practices for DBA's and DevOps Part 1
Galera Cluster Best Practices for DBA's and DevOps Part 1
 
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docxKeepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
Keepalived+MaxScale+MariaDB_운영매뉴얼_1.0.docx
 
Tuning Autovacuum in Postgresql
Tuning Autovacuum in PostgresqlTuning Autovacuum in Postgresql
Tuning Autovacuum in Postgresql
 
MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)MySQL Group Replication - Ready For Production? (2018-04)
MySQL Group Replication - Ready For Production? (2018-04)
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
 
Percona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient BackupsPercona Xtrabackup - Highly Efficient Backups
Percona Xtrabackup - Highly Efficient Backups
 
Vacuum in PostgreSQL
Vacuum in PostgreSQLVacuum in PostgreSQL
Vacuum in PostgreSQL
 
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and OrchestratorAlmost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
Almost Perfect Service Discovery and Failover with ProxySQL and Orchestrator
 
MySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group ReplicationMySQL InnoDB Cluster - Group Replication
MySQL InnoDB Cluster - Group Replication
 
PostgreSQL replication
PostgreSQL replicationPostgreSQL replication
PostgreSQL replication
 
Understanding PostgreSQL LW Locks
Understanding PostgreSQL LW LocksUnderstanding PostgreSQL LW Locks
Understanding PostgreSQL LW Locks
 
Maxscale 소개 1.1.1
Maxscale 소개 1.1.1Maxscale 소개 1.1.1
Maxscale 소개 1.1.1
 
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
MySQL Load Balancers - Maxscale, ProxySQL, HAProxy, MySQL Router & nginx - A ...
 
Monitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstatsMonitoring IO performance with iostat and pt-diskstats
Monitoring IO performance with iostat and pt-diskstats
 
ProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management OverviewProxySQL High Avalability and Configuration Management Overview
ProxySQL High Avalability and Configuration Management Overview
 
Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기Maria db 이중화구성_고민하기
Maria db 이중화구성_고민하기
 
PostgreSQL and RAM usage
PostgreSQL and RAM usagePostgreSQL and RAM usage
PostgreSQL and RAM usage
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System Administrators
 

Similar to Zero Downtime Schema Changes - Galera Cluster - Best Practices

M|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change MethodsM|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change MethodsMariaDB plc
 
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?Toronto-Oracle-Users-Group
 
Oracle Database 12c "New features"
Oracle Database 12c "New features" Oracle Database 12c "New features"
Oracle Database 12c "New features" Anar Godjaev
 
The Apache Cassandra ecosystem
The Apache Cassandra ecosystemThe Apache Cassandra ecosystem
The Apache Cassandra ecosystemAlex Thompson
 
High-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLHigh-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLFromDual GmbH
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionFrederic Descamps
 
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_DatabaseNoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_DatabaseParesh Patel
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesDave Stokes
 
[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)Steve Min
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesDave Stokes
 
Production Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsProduction Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsNarayanan Krishnamurthy
 
How to Handle your Kubernetes Upgrades
How to Handle your Kubernetes UpgradesHow to Handle your Kubernetes Upgrades
How to Handle your Kubernetes UpgradesCloudOps2005
 
Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...
Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...
Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...Severalnines
 
PoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HAPoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HAUlf Wendel
 
Pg chameleon, mysql to postgresql replica made easy
Pg chameleon, mysql to postgresql replica made easyPg chameleon, mysql to postgresql replica made easy
Pg chameleon, mysql to postgresql replica made easyFederico Campoli
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Qualcomm Developer Network
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®confluent
 

Similar to Zero Downtime Schema Changes - Galera Cluster - Best Practices (20)

M|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change MethodsM|18 Battle of the Online Schema Change Methods
M|18 Battle of the Online Schema Change Methods
 
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?Extreme Availability using Oracle 12c Features: Your very last system shutdown?
Extreme Availability using Oracle 12c Features: Your very last system shutdown?
 
Oracle Database 12c "New features"
Oracle Database 12c "New features" Oracle Database 12c "New features"
Oracle Database 12c "New features"
 
The Apache Cassandra ecosystem
The Apache Cassandra ecosystemThe Apache Cassandra ecosystem
The Apache Cassandra ecosystem
 
High-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQLHigh-availability with Galera Cluster for MySQL
High-availability with Galera Cluster for MySQL
 
01 oracle architecture
01 oracle architecture01 oracle architecture
01 oracle architecture
 
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code ExtensionMySQL Day Roma - MySQL Shell and Visual Studio Code Extension
MySQL Day Roma - MySQL Shell and Visual Studio Code Extension
 
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_DatabaseNoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
NoCOUG_201411_Patel_Managing_a_Large_OLTP_Database
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
 
OpenShift Multicluster
OpenShift MulticlusterOpenShift Multicluster
OpenShift Multicluster
 
[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)[SSA] 03.newsql database (2014.02.05)
[SSA] 03.newsql database (2014.02.05)
 
Midwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL FeaturesMidwest PHP Presentation - New MSQL Features
Midwest PHP Presentation - New MSQL Features
 
Production Grade Kubernetes Applications
Production Grade Kubernetes ApplicationsProduction Grade Kubernetes Applications
Production Grade Kubernetes Applications
 
How to Handle your Kubernetes Upgrades
How to Handle your Kubernetes UpgradesHow to Handle your Kubernetes Upgrades
How to Handle your Kubernetes Upgrades
 
Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...
Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...
Become a MySQL DBA - Webinars - Schema Changes for MySQL Replication & Galera...
 
HA with Galera
HA with GaleraHA with Galera
HA with Galera
 
PoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HAPoC: Using a Group Communication System to improve MySQL Replication HA
PoC: Using a Group Communication System to improve MySQL Replication HA
 
Pg chameleon, mysql to postgresql replica made easy
Pg chameleon, mysql to postgresql replica made easyPg chameleon, mysql to postgresql replica made easy
Pg chameleon, mysql to postgresql replica made easy
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
 
CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®CDC patterns in Apache Kafka®
CDC patterns in Apache Kafka®
 

More from Severalnines

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSSeveralnines
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudSeveralnines
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsSeveralnines
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSeveralnines
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...Severalnines
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBSeveralnines
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlSeveralnines
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Severalnines
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Severalnines
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBSeveralnines
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseSeveralnines
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBSeveralnines
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerSeveralnines
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifeSeveralnines
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Severalnines
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLSeveralnines
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningSeveralnines
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBSeveralnines
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Severalnines
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilitySeveralnines
 

More from Severalnines (20)

Cloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaSCloud's future runs through Sovereign DBaaS
Cloud's future runs through Sovereign DBaaS
 
Tips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloudTips to drive maria db cluster performance for nextcloud
Tips to drive maria db cluster performance for nextcloud
 
Working with the Moodle Database: The Basics
Working with the Moodle Database: The BasicsWorking with the Moodle Database: The Basics
Working with the Moodle Database: The Basics
 
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDBSysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
SysAdmin Working from Home? Tips to Automate MySQL, MariaDB, Postgres & MongoDB
 
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
(slides) Polyglot persistence: utilizing open source databases as a Swiss poc...
 
Webinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDBWebinar slides: How to Migrate from Oracle DB to MariaDB
Webinar slides: How to Migrate from Oracle DB to MariaDB
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
 
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
Webinar slides: How to Manage Replication Failover Processes for MySQL, Maria...
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
Disaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDBDisaster Recovery Planning for MySQL & MariaDB
Disaster Recovery Planning for MySQL & MariaDB
 
MariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash CourseMariaDB Performance Tuning Crash Course
MariaDB Performance Tuning Crash Course
 
Performance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDBPerformance Tuning Cheat Sheet for MongoDB
Performance Tuning Cheat Sheet for MongoDB
 
Advanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona ServerAdvanced MySql Data-at-Rest Encryption in Percona Server
Advanced MySql Data-at-Rest Encryption in Percona Server
 
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket KnifePolyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
Polyglot Persistence Utilizing Open Source Databases as a Swiss Pocket Knife
 
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
Webinar slides: Free Monitoring (on Steroids) for MySQL, MariaDB, PostgreSQL ...
 
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQLWebinar slides: An Introduction to Performance Monitoring for PostgreSQL
Webinar slides: An Introduction to Performance Monitoring for PostgreSQL
 
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance TuningWebinar slides: Our Guide to MySQL & MariaDB Performance Tuning
Webinar slides: Our Guide to MySQL & MariaDB Performance Tuning
 
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDBWebinar slides: Migrating to Galera Cluster for MySQL and MariaDB
Webinar slides: Migrating to Galera Cluster for MySQL and MariaDB
 
Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?Webinar slides: How to Measure Database Availability?
Webinar slides: How to Measure Database Availability?
 
Webinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High AvailabilityWebinar slides: Designing Open Source Databases for High Availability
Webinar slides: Designing Open Source Databases for High Availability
 

Recently uploaded

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 

Recently uploaded (20)

Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 

Zero Downtime Schema Changes - Galera Cluster - Best Practices

  • 2. Agenda ● Schema Upgrades in Synchronous Cluster ● DDL Classification ● Schema Backwards Compatibility ● Alternatives for Schema Upgrades ● ● ● ● ● ● TOI RSU / desync wsrep_desync / wsrep_on method Dropping Node for DDL pt-online-schema-change Summary www.codership.com 2
  • 3. Schema Upgrades Applications have evolution, and there will be needs to change database schema in new application revisions With 24/7 online requirements, the schema upgrade must happen while the system is online Synchronous database cluster, requires that all active nodes must have same data – Note that schema may differ, as long as data content is logically same We need to figure out way(s) to roll schema upgrades in online cluster with minimal disruption for the service www.codership.com 3
  • 4. What is DDL? SQL statements can be classified in several classes: DML Data Manipulation Language – Transactional data manipulations – SELECT, INSERT, UPDATE... DDL Data Definition Language – CREATE..., DROP..., ALTER... DCL Data Control Language – GRANT, REVOKE TCL Transaction Control Language … http://en.wikibooks.org/wiki/MySQL/Language/Definitions:_what_are_DDL,_DML_and_DQL%3F www.codership.com 4
  • 5. DML vs DDL But the bottom line is division between transactional and nontransactional statements: Transactional SQL – All DML on InnoDB – NON Transactional SQL Can be rolled back ● Not possible to rollback – ● DDL, DCL..., DML on non transactional SE – ● – Requires up-front locking Galera uses optimistic concurrency control, and depends on possibility to rollback a conflicting operation Only transactional SQL can be replicated through Galera transactional replication For others (DDL, DCL...), we either have to skip replication or use up-front locking www.codership.com 5
  • 6. DML vs DDL Notes on some DDL: TRUNCATE – is DDL! – Is fast to execute, but nevertheless has some impact OPTIMIZE, REPAIR, ANALYZE – Table admin commands are now replicated CREATE / DROP INDEX – Hold MDL on affected table, and can stall the replication www.codership.com 6
  • 8. Backward Compatibility App v1 MySQL Schema v1 App v1 Schema Upgrade MySQL Schema v2 App Upgrade App v2 MySQL Schema v2 Old application version must be able to use the new schema www.codership.com 9
  • 9. Backward Compatibility App v1 MySQL Schema v1 App Upgrade App v2 MySQL Schema v1 App v2 Schema Upgrade MySQL Schema v2 New application version must be able to use the old schema www.codership.com 10
  • 10. Backwards Compatibility New/old application should be able to use both old and new schema Application should be backwards compatible ROW replication between old and new schema should be possible Schema change should be backwards compatible www.codership.com 11
  • 11. App Backwards Compatibility New/old application should be able to use both old and new schema – New application can have compatibility mode to detect the version of underlying database – If old app cannot use new schema, the old app must connect to one node only, which will be the last to upgrade Dropping tables or columns can be a problem – But drops can be done delayed: e.g. in v2 -> v3 upgrade, obsolete v1 elements can be dropped as neither v2 or v3 app will use them any more www.codership.com 12
  • 12. ROW Replication Compatibility MySQL guarantees ROW replication event compatibility with some limitations Newer MySQL versions tolerate more variation between source and target tables, check out this page for latest status: http://dev.mysql.com/doc/refman/5.6/en/replication-features-differing-tables.html ● ● Source and target can have different number of columns But columns must be in same order ● New columns in the end, and must have default values ● Some data type conversions are also supported www.codership.com 13
  • 13. ROW Replication Compatibility Insert into table-A(col-a,col-b) values (5,7) col-a col-b col-a Table A col-b col-c Table A www.codership.com 14
  • 14. ROW Replication Compatibility Insert into table-A(col-a,col-b) values (5,7) col-a col-b col-a col-b col-c 5 7 5 7 def Replication Table A Table A www.codership.com 15
  • 15. STATEMENT Replication In STATEMENT format, schema compatibility is not an issue Galera does not currently support STATEMENT replication, but: – Enabling STATEMENT replication is minor task Consistency is at risk ● Parallel applying must be limited (OFF, Database or Table level) ● STATEMENT replication, in general, is phasing out Supporting STATEMENT replication for schema upgrades, is one potential extension we are looking for ● – www.codership.com 16
  • 16. Schema Upgrades in Galera Cluster
  • 17. Schema Upgrades in Galera Galera Cluster has two inbuilt methods for DDL replication: – TOI – Total Order Isolation – RSU – Rolling Schema Upgrade The method of choice is declared by variable: wsrep_osu_method = TOI | RSU Pt-online-schema-change is valid tool for upgrades, these and other DDL replication alternatives are discussed in following chapters. www.codership.com 18
  • 19. TOI Total oder Isolation (TOI) is the default DDL replication method ● ● ● ● wsrep_osu_method = TOI “master node” detects DDL at parsing time and sends out replication event for the SQL statement before even starting the DDL processing DDL replication happens in STATEMENT format Every node in the cluster will process the replicated DDL at the same “slot” in the cluster transaction stream (Total Order) www.codership.com 20
  • 20. TOI Replication ALTER TABLE t1... Parser Replication MySQL MySQL Execution a Galera Replication WS Seqno STATEMENT event G a l e r a R e p l i c a t io n www.codership.com 21
  • 21. TOI Replication ALTER TABLE t1... Parser apply continue Parser MySQL MySQL Execution Execution a Galera Replication WS Seqno slot reached www.codership.com 22
  • 22. TOI Replication Pros – Strict consistency, all nodes will get same change – No worries about schema backwards compatibility Cons – Strict commit order will make every transaction to wait until DDL is over Usable, when: – DDL is short term – Schema change will not be backwards compatible – And/or there is maintenance window Some future work in road map: – TOI replication commit order can be relaxed – We are working on optimization based on this www.codership.com 23
  • 24. RSU ➢ Rolling Schema Upgrade wsrep_osu_method=RSU ➢ Will desynchronize the node from replication for the duration of following DDL command ➢ Incoming replication is buffered ➢ Nothing will be replicated out of the node ➢ When DDL is over, the node will automatically join back in cluster, and catch up missed transactions from the buffer www.codership.com 25
  • 25. RSU SET GLOBAL wsrep_osu_method=RSU ALTER TABLE t1... MySQL MySQL MySQL G a l e r a R e p l i c a t io n a Galera Replication www.codership.com 26
  • 27. RSU ALTER TABLE t1... MySQL WS a MySQL MySQL WS Slave queue Galera Replication www.codership.com 28
  • 28. RSU Pros – DDL will not slow down cluster – Automatic re-sync after DDL is over Cons – – Schema change has to be backwards compatible – a Has global effect, all sessions will be RSU'ed Only one RSU operation at a time – Rolling over cluster is manual operation www.codership.com 29
  • 30. wsrep_desync Node can be set to omit flow control by: mysql> SET GLOBAL wsrep_desync=ON; A session can be declared to not replicate anything by: mysql> SET wsrep_on=OFF; ● ● Running DDL in such a session, will result in local schema change, and processing of the DDL will not hold back cluster. However, all cluster transactions will be replicated to the node, and if there are conflicts, the DDL will be aborted. wsrep_desync+wsrep_on method is good only for non-confliction operations www.codership.com 31
  • 31. wsrep_desync+wsrep_on SET GLOBAL wsrep_desync=ON; SET wsrep_on=OFF; ALTER TABLE t1... t1 t2 tn MySQL a WS WS Slave queue Galera Replication www.codership.com 32
  • 32. wsrep_desync We are currently working on making better use of desync mode. The goal is to protect local desynced transactions from replication aborts. This way, the DDL will succeed even if there are conflicts with the cluster. However, cluster replication will pause at first such conflict and wait until DDL is complete. But, this will be future extension, and available in some of following 3.* release. www.codership.com 33
  • 33. Drop a Node for DDL
  • 34. Dropping Node for DDL One way to do “manual RSU”, is to drop a node from cluster and run DDL on the stand-alone node. Joining the node back must happen through IST, as we don't want SST to bring back the old schema. Make sure to protect the node from any production connections! Load balancers should be configured first to isolate the node from unwanted connections. Adjust your gcache size big enough to allow IST after the DDL is over. www.codership.com 35
  • 35. Dropping Node for DDL Load Balancer 1. configure LB 2. Drop node, e.g. set global wsrep_cluster_address=gcomm:// MySQL MySQL Galera Replication www.codership.com 36
  • 36. Dropping Node for DDL Load Balancer 3. ALTER TABLE t1... MySQL MySQL Galera Replication www.codership.com 37
  • 37. Dropping Node for DDL Load Balancer 4. Join back set wsrep_cluster_address... WS MySQL WS IST MySQL Galera Replication www.codership.com 38
  • 38. Dropping Node for DDL Load Balancer 5. configure LB MySQL MySQL Galera Replication www.codership.com 39
  • 40. pt-online-schema-change Tool in Percona Toolkit to run non blocking schema changes http://www.percona.com/doc/percona-toolkit/2.2/pt-online-schema-change.html 1. Creates a shadow copy of target table 2. Installs triggers in source table to forward updates to target table 3. Copies source table data in small chunks to target table 4. Renames target table to replace the source table Pt-osc does not replicate schema changes, but makes it possible to change schema without interfering with replication However, pt-osc requires TOI to be enabled, and TOI replication will propagate the changes to whole cluster www.codership.com 41
  • 42. pt-online-schema-change updates t1-new t1 a Install trigger to forward updates to new table www.codership.com 43
  • 47. pt-online-schema-change Some Caveats: ● TOI requirement – – ● Pt-osc changes will be run against whole cluster with one go Could be relaxed, imo Triggers not supported – ● Pt-osc installs new triggers in source table and does not allow any other triggers to exists in the table Foreign key support – a Two methods for dealing with FKs – Rebuilding child table FK constraint may be needed – FK constraint name will be different www.codership.com 48
  • 49. Codership Schema upgrades require careful planning ➢ Find out backwards compatibility both from application and from ROW replication perspective ➢ Plan your upgrade process ➢ Rehearse with test cluster Instant methods: ➢ TOI replication, pt-osc ➢ ROW replication backwards compatibility is not an issue Rolling methods ➢ RSU, wsrep_desync/wsrep_on, node dropping ➢ Schema backwards compatibility required www.codership.com 50
  • 50. Questions? Thank you for listening! Happy Clustering :-)