SlideShare a Scribd company logo
1 of 59
Download to read offline
Copyright©2018 NTT Corp. All Rights Reserved.
PostgreSQL Major Version
Upgrade Using built-in
Logical Replication
NTT OSS Center
Atsushi Torikoshi
PGConf.ASIA 2018
22Copyright©2018 NTT Corp. All Rights Reserved.
• Upgrading PostgreSQL cluster
• Introduction to Logical Replication
• Architecture and Behavior of Logical
Replication
• Major version upgrade using logical
replication
Agenda
33Copyright©2018 NTT Corp. All Rights Reserved.
Upgrading
PostgreSQL Cluster
44Copyright©2018 NTT Corp. All Rights Reserved.
Minor Version Upgrade
• e.g. 9.6.0 -> 9.6.1, 10.3 -> 10.6
• always compatible with earlier and later minor releases
• just need upgrade the PostgreSQL binary
Major Version Upgrade
• e.g. 9.5.1 -> 9.6.15, 10.2 -> 11.1
• not always compatible, the internal data storage format can be
changed
• upgrading the PostgreSQL binary is not enough, it needs also
upgrading data files
⇒ several ways for major version upgrade
2 types of version upgrade
55Copyright©2018 NTT Corp. All Rights Reserved.
pg_dump
o the traditional way for major version up
x service downtime during dump and restore
pg_upgrade
o faster than pg_dump
x shorter than pg_dump, but it still needs service downtime
link mode is much faster, but you cannot go back the original
cluster once you start up the new one
Logical Replication
o it doesn't need stop PostgreSQL service during replication
⇒ near zero downtime
x built-in logical replication is supported only after version 10
3 ways for major version upgrade
66Copyright©2018 NTT Corp. All Rights Reserved.
Introduction to
Logical Replication
77Copyright©2018 NTT Corp. All Rights Reserved.
Physical Replication replicates a whole DB cluster
by sending & replaying all the WAL.
Looking back Physical Replication
Upstream Downstream
sendTable
Table
Table
WALWAL WALWAL Table
Table
Table
replay
88Copyright©2018 NTT Corp. All Rights Reserved.
Physical Replication cannot do things like:
• partial replication(partial data, partial manipulation)
• replication between different OS arc/major version
PostgreSQL
Logical Replication has added flexibility to built-in
replication and made these things possible.
Motivations for Logical Replication
Upstream Downstream
decode, sendTable
Table
Table
WALWAL WALWAL Table
Table
apply
write
99Copyright©2018 NTT Corp. All Rights Reserved.
So, how can we upgrade our
cluster with Logical Replication?
1010Copyright©2018 NTT Corp. All Rights Reserved.
1. Create a new cluster
How can we upgrade our cluster with
Logical Replication?
Current New
APP
1111Copyright©2018 NTT Corp. All Rights Reserved.
1. Create a new cluster
2. Start Logical Replication
How can we upgrade our cluster with
Logical Replication?
Current New
APP
1212Copyright©2018 NTT Corp. All Rights Reserved.
1. Create a new cluster
2. Start Logical Replication
3. Switch access point
How can we upgrade our cluster with
Logical Replication?
Current New
APP
1313Copyright©2018 NTT Corp. All Rights Reserved.
1. Create a new cluster
2. Start Logical Replication
3. Switch access point
That’s all. It’s a piece of cake!
How can we upgrade our cluster with
Logical Replication?
Current New
APP
1414Copyright©2018 NTT Corp. All Rights Reserved.
1. Create a new cluster
2. Start Logical Replication
3. Switch access point
That’s all. It’s a piece of cake!
Logical Replication has some limitations and does
characteristic behaviors.
How can we upgrade our cluster with
Logical Replication?
Current New
APP
1515Copyright©2018 NTT Corp. All Rights Reserved.
Architecture and Behaviors
of Logical Replication
1616Copyright©2018 NTT Corp. All Rights Reserved.
• ‘walsender’ and ‘apply worker’ do most of the
works for Logical Replication.
Basics of the architecture
WAL
wal
sender
Publisher (upstream)
write
apply
worker
launcher
launch
Subscriber(downstream)
backend
process
read
decode
backend
process
1717Copyright©2018 NTT Corp. All Rights Reserved.
• ‘walsender’ and ‘apply worker’ do most of the
works for Logical Replication.
• ‘sync worker’ and the corresponding ‘walsender’
run only at initial table sync.
Basics of the architecture
WAL
wal
sender
Publisher (upstream)
write
wal
sender
apply
worker
launcher
sync
worker
launch
launch
Subscriber(downstream)
backend
process
read
decode
backend
process
1818Copyright©2018 NTT Corp. All Rights Reserved.
• walsender reads all WAL and decodes* them.
Then walsender sends some of them to the
subscriber.
• apply worker applies that change.
*decoding needs the most detailed WAL: wal_level = logical
Basics of the architecture ~replication
WAL
backend
process
wal
sender
Publisher
write
read
apply
worker
Subscriber
TableTableTable
write
decode
send
change
1919Copyright©2018 NTT Corp. All Rights Reserved.
Basics of the architecture ~replication
WAL
walsender
INSERT
UPDATE
UPDATE
DELETE
UPDATE apply
worker
Publisher Subscriber
:transaction
• walsender reassembles queries according to its
transaction.
• When INSERT, UPDATE or DELETE is placed,
walsender keeps that change in memory.
2020Copyright©2018 NTT Corp. All Rights Reserved.
• walsender reassembles queries according to its
transaction.
• When INSERT, UPDATE or DELETE is placed,
walsender keeps that change in memory.
Basics of the architecture ~replication
WAL
walsender
INSERT
UPDATE
UPDATE
DELETE
UPDATE
1. read WAL
apply
worker
Publisher Subscriber
:transaction
2121Copyright©2018 NTT Corp. All Rights Reserved.
Basics of the architecture ~replication
WAL
walsender
INSERT
INSERT
UPDATE
UPDATE
DELETE
UPDATE
1. read WAL
2. decode
apply
worker
Publisher Subscriber
:transaction
• walsender reassembles queries according to its
transaction.
• When INSERT, UPDATE or DELETE is placed,
walsender keeps that change in memory.
2222Copyright©2018 NTT Corp. All Rights Reserved.
Basics of the architecture ~replication
WAL
walsender
INSERT
INSERT
UPDATE
UPDATE
DELETE
UPDATE
1. read WAL
2. decode
3. reassemble
by transaction
apply
worker
Publisher Subscriber
:transaction
INSERT
• walsender reassembles queries according to its
transaction.
• When INSERT, UPDATE or DELETE is placed,
walsender keeps that change in memory.
2323Copyright©2018 NTT Corp. All Rights Reserved.
• When the decoded result is COMMIT,
‘walsender’ sends all the changes for that
transaction to subscriber.
Basics of the architecture ~replication
:transaction
WAL
apply
worker
walsender
COMMIT
INSERT
UPDATE
UPDATE
DELETE
UPDATE
1. read WAL
2. decode
4. send
Publisher Subscriber
3. reassemble
by transaction
COMMIT
2424Copyright©2018 NTT Corp. All Rights Reserved.
• When the decoded result is ROLLBACK,
walsender just throws away the changes for that
transaction.
Basics of the architecture ~replication
:transaction
WAL
walsender
ROLLBACK
INSERT
UPDATE
UPDATE
DELETE
UPDATE
ROLLBACK
1. read WAL
2. decode
4. cleanup
apply
worker
Publisher Subscriber
3. reassemble
by transaction
2525Copyright©2018 NTT Corp. All Rights Reserved.
• When the decoded result is ROLLBACK,
walsender just throws away the changes for that
transaction.
Basics of the architecture ~replication
:transaction
WAL
walsender
ROLLBACK
INSERT
UPDATE
UPDATE
DELETE
1. read WAL
2. decode
4. cleanup
apply
worker
Publisher Subscriber
3. reassemble
by transaction
2626Copyright©2018 NTT Corp. All Rights Reserved.
• walsender reassembles queries by its
transaction.
• When the decoded result is DDL, walsender does
NOT replicate it.
Basics of the architecture ~replication
WAL
walsender
INSERT
UPDATE
UPDATE
DELETE
UPDATE apply
worker
Publisher Subscriber
:transaction
CREATE
NOT replicated
2727Copyright©2018 NTT Corp. All Rights Reserved.
• At initial table synchronization, COPY runs.
• COPY is done by dedicated walsender and sync
worker. These processes exit after COPY is done.
Initial table synchronization
WAL
backend
process
wal
sender
Publisher
write
read
apply
worker
Subscriber
TableTableTable
sync
worker
wal
sender
write
(COPY)
2828Copyright©2018 NTT Corp. All Rights Reserved.
1. Logical Replication does NOT replicate all
the data & manipulations
2. It needs additional information on WAL
3. It does initial table synchronization using
COPY
4. It transmits data per transaction
Summary of the architecture and behavior
2929Copyright©2018 NTT Corp. All Rights Reserved.
Major version upgrade
using
Logical Replication
3030Copyright©2018 NTT Corp. All Rights Reserved.
1. Logical Replication does NOT replicate
all the data & manipulation
3131Copyright©2018 NTT Corp. All Rights Reserved.
Following objects are not replicated.
• view
• materialized view
• Foreign table
• Partition root table
1. Logical Replication does NOT replicate all
3232Copyright©2018 NTT Corp. All Rights Reserved.
Following objects are not replicated.
• view
• materialized view
• Foreign table
• Partition root table
⇒ These objects can be created data on new DB.
Create them before switching
1. Logical Replication does NOT replicate all
3333Copyright©2018 NTT Corp. All Rights Reserved.
• Large objects
1. Logical Replication does NOT replicate all
3434Copyright©2018 NTT Corp. All Rights Reserved.
• Large objects
⇒ After completion of the replication, run pg_dump
only on the large objects and restore them.
During this operation, APP needs stop updating
1. Logical Replication does NOT replicate all
3535Copyright©2018 NTT Corp. All Rights Reserved.
• Large objects
⇒ After completion of the replication, run pg_dump
only on the large objects and restore them.
During this operation, APP needs stop updating.
or
Migrate large objects to normal table
1. Logical Replication does NOT replicate all
3636Copyright©2018 NTT Corp. All Rights Reserved.
• Sequence
Data generated by sequence are replicated, but sequence objects
themselves are NOT replicated
1. Logical Replication does NOT replicate all
3737Copyright©2018 NTT Corp. All Rights Reserved.
• Sequence
Data generated by sequence are replicated, but sequence objects
themselves are NOT replicated
⇒ After completion of the replication, run
pg_dump only on the sequence and restore it.
During this operation, APP needs stop updating
sequences
1. Logical Replication does NOT replicate all
3838Copyright©2018 NTT Corp. All Rights Reserved.
• DDL
1. Logical Replication does NOT replicate all
3939Copyright©2018 NTT Corp. All Rights Reserved.
• DDL
⇒ If any DDL commands have to be run during
replication, run them also on subscriber
1. Logical Replication does NOT replicate all
4040Copyright©2018 NTT Corp. All Rights Reserved.
• DDL
⇒ If any DDL commands have to be run during
replication, run them also on subscriber
About partition child table
If partition child tables are created by trigger, it may be possible
to run the trigger on subscriber using ENABLE ALWAYS TRIGGER
NOTE: Even when using ENABLE ALWAYS TRIGGER, some kind of
triggers aren't replicated
e.g. UPDATE OF .. FOR EACH ROW
1. Logical Replication does NOT replicate all
4141Copyright©2018 NTT Corp. All Rights Reserved.
• TRUNCATE(~ver 10)
1. Logical Replication does NOT replicate all
4242Copyright©2018 NTT Corp. All Rights Reserved.
• TRUNCATE(~ver 10)
⇒ Substitute DELETE for TRUNCATE
PostgreSQL 11 replicates TRUNCATE☺
1. Logical Replication does NOT replicate all
4343Copyright©2018 NTT Corp. All Rights Reserved.
• Unlogged table
The basic idea of logical replication is decoding WAL
When there are no WAL, how can we do that?
• Global objects
The unit of Logical Replication is database, but global objects
belong to database cluster.
1. Logical Replication does NOT replicate all
4444Copyright©2018 NTT Corp. All Rights Reserved.
• Unlogged table
The basic idea of logical replication is decoding WAL
When there are no WAL, how can we do that?
⇒ pg_dump
• Global objects
The unit of Logical Replication is database, but global objects
belong to database cluster.
⇒ pg_dumpall
1. Logical Replication does NOT replicate all
4545Copyright©2018 NTT Corp. All Rights Reserved.
2. Logical Replication needs additional
information on WAL
4646Copyright©2018 NTT Corp. All Rights Reserved.
Consideration for performance:
• wal_level = ‘logical’ is most detailed log level.
• UPDATE and DELETE on tables need ‘replica
identity’
• The default of the replica identity is primary key.
• If there are no primary key or suitable columns, set replica
identity 'full', which means the entire row becomes the key.
2. needs additional information on WAL
4747Copyright©2018 NTT Corp. All Rights Reserved.
Performance and WAL size impacts by wal_level and replica
identity
• Amount of WAL
• Response time
2. needs additional information on WAL
wal_level replica identity ⊿LSN Ratio of ⊿LSN
logical full 21179088 1.49
logical default 16763896 1.18
replica - 14252616 1
wal_level replica identity avg(response) diff(avg(response))
Logical full 2.132ms -0.020ms
logical default 2.126ms -0.026ms
replica - 2.152ms -
1 minute pgbench on PostgreSQL 10
4848Copyright©2018 NTT Corp. All Rights Reserved.
3. Initial table synchronization using COPY
4949Copyright©2018 NTT Corp. All Rights Reserved.
initial table sync doesn't have parameters which
restrict the speed of COPY directly.
It may give performance impact on APP
3. initial table synchronization using COPY
5050Copyright©2018 NTT Corp. All Rights Reserved.
Adding some delay on network using command tc
relieved the impact on client queries
3. initial table synchronization using COPY
No delay 100ms delay
ms
5151Copyright©2018 NTT Corp. All Rights Reserved.
Under some environments, initial table
synchronization didn’t consume all the resources
because walsenders waited for client responses
In this case, we could improve the performance by
increasing max_sync_workers_per_subscription
3. initial table synchronization using COPY
sync worker = 1 sync worker = 8
kB/s kB/s
5252Copyright©2018 NTT Corp. All Rights Reserved.
4. Transmission per transaction
5353Copyright©2018 NTT Corp. All Rights Reserved.
walsender keeps each change of a transaction until
COMMIT or ROLLBACK
It may cause walsender to use a lot of memory.
4. Transmission per transaction
walsender
INSERT
UPDATE
UPDATE
DELETE
UPDATE
Publisher
INSERT
INSERT
UPDATE
UPDATE
DELETE
UPDATE
UPDATE
DELETE
apply
worker
Subscriber
5454Copyright©2018 NTT Corp. All Rights Reserved.
4. Transmission per transaction
Type of manipulation Measuresto prevent memory use Risk
long transactions No feature high
many transactions
many savepoints
many changes in one
transaction
When the number of
changes in one transaction
exceeds 4096, It has a
feature to spill out the
change to disk.
Low
5555Copyright©2018 NTT Corp. All Rights Reserved.
Major upgrade with Logical replication is possible, but it’s
not piece of cake.
We should watch out for its limitations and behavior such
as:
• Some data & manipulations are not replicated
⇒ there may be workarounds
• Additional information for replication is necessary
⇒ It seems that does not give critical impact
Summary
5656Copyright©2018 NTT Corp. All Rights Reserved.
• Initial sync may give performance impact on APP
⇒ Tuning on PostgreSQL or network may moderate it
• Long or many transactions and many savepoints may lead
much memory consumption
⇒ Confirm the way of transactions run
Summary
5757Copyright©2018 NTT Corp. All Rights Reserved.
Thanks for your cooperation!
Shinya Okano@Metro Systems
Hibiki Tanaka@Metro Systems
5858Copyright©2018 NTT Corp. All Rights Reserved.
Thanks for listening!
5959Copyright©2018 NTT Corp. All Rights Reserved.
Comparison between Logical and Physical
Replication
Physical Logical
way of the
replication
log shipping row-based replication
downstream DB copy of the
upstream DB
not necessarily the same as upstream DB
manipulations for
downstream DB
restricted
SELECT, PREPARE,
EXECUTE ..
No restrictions, but some manipulations
may lead to conflict
What is replicated ALL views, partition root tables, large objects
and some manipulations including DDL are
NOT replicated
purpose of use high availability
load balancing
fine-grained replication
replication between different
environments

More Related Content

What's hot

Architecture & Pitfalls of Logical Replication
Architecture & Pitfalls of Logical ReplicationArchitecture & Pitfalls of Logical Replication
Architecture & Pitfalls of Logical ReplicationAtsushi Torikoshi
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PGConf APAC
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)NTT DATA Technology & Innovation
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_APIKohei KaiGai
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...NTT DATA Technology & Innovation
 
PGEncryption_Tutorial
PGEncryption_TutorialPGEncryption_Tutorial
PGEncryption_TutorialVibhor Kumar
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性Ohyama Masanori
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions Yugabyte
 

What's hot (20)

Architecture & Pitfalls of Logical Replication
Architecture & Pitfalls of Logical ReplicationArchitecture & Pitfalls of Logical Replication
Architecture & Pitfalls of Logical Replication
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_walinspectについて調べてみた!(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
PostgreSQL 14 モニタリング新機能紹介(PostgreSQL カンファレンス #24、2021/06/08)
 
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 
20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API20221111_JPUG_CustomScan_API
20221111_JPUG_CustomScan_API
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
PGEncryption_Tutorial
PGEncryption_TutorialPGEncryption_Tutorial
PGEncryption_Tutorial
 
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
監査要件を有するシステムに対する PostgreSQL 導入の課題と可能性
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions YugaByte DB Internals - Storage Engine and Transactions
YugaByte DB Internals - Storage Engine and Transactions
 

Similar to PostgreSQL major version upgrade using built in Logical Replication

“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the CoreC4Media
 
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Motoki Kakinuma
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLPGConf APAC
 
Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Cloudera, Inc.
 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackNTT Communications Technology Development
 
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast DataDatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast DataHakka Labs
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Cloud Native Day Tel Aviv
 
20180417 hivemall meetup#4
20180417 hivemall meetup#420180417 hivemall meetup#4
20180417 hivemall meetup#4Takeshi Yamamuro
 
Running Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesRunning Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesYugabyte
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLHow YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLYugabyte
 
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...VirtualTech Japan Inc.
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-finalshintaro mizuno
 
DUG'20: 03 - Online compression with QAT in DAOS
DUG'20: 03 - Online compression with QAT in DAOSDUG'20: 03 - Online compression with QAT in DAOS
DUG'20: 03 - Online compression with QAT in DAOSAndrey Kudryavtsev
 
Apache Pulsar at Yahoo! Japan
Apache Pulsar at Yahoo! JapanApache Pulsar at Yahoo! Japan
Apache Pulsar at Yahoo! JapanStreamNative
 
The Flink - Apache Bigtop integration
The Flink - Apache Bigtop integrationThe Flink - Apache Bigtop integration
The Flink - Apache Bigtop integrationMárton Balassi
 
times ten in-memory database for extreme performance
times ten in-memory database for extreme performancetimes ten in-memory database for extreme performance
times ten in-memory database for extreme performanceOracle Korea
 
How to Boost 100x Performance for Real World Application with Apache Spark-(G...
How to Boost 100x Performance for Real World Application with Apache Spark-(G...How to Boost 100x Performance for Real World Application with Apache Spark-(G...
How to Boost 100x Performance for Real World Application with Apache Spark-(G...Spark Summit
 
From shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practicesFrom shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practicesAnkush Chadha, MBA, MS
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisAgileSparks
 

Similar to PostgreSQL major version upgrade using built in Logical Replication (20)

“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core“Quantum” Performance Effects: beyond the Core
“Quantum” Performance Effects: beyond the Core
 
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
Kirin User Story: Migrating Mission Critical Applications to OpenStack Privat...
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
 
Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive

Apache Kudu: Technical Deep Dive


Apache Kudu: Technical Deep Dive


 
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStackAutomated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
Automated Deployment & Benchmarking with Chef, Cobbler and Rally for OpenStack
 
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast DataDatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
DatEngConf SF16 - Apache Kudu: Fast Analytics on Fast Data
 
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
Kubernetes is hard! Lessons learned taking our apps to Kubernetes - Eldad Ass...
 
20180417 hivemall meetup#4
20180417 hivemall meetup#420180417 hivemall meetup#4
20180417 hivemall meetup#4
 
Running Stateful Apps on Kubernetes
Running Stateful Apps on KubernetesRunning Stateful Apps on Kubernetes
Running Stateful Apps on Kubernetes
 
How YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQLHow YugaByte DB Implements Distributed PostgreSQL
How YugaByte DB Implements Distributed PostgreSQL
 
PostgreSQL replication
PostgreSQL replicationPostgreSQL replication
PostgreSQL replication
 
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
NTTドコモ様 導入事例 OpenStack Summit 2015 Tokyo 講演「After One year of OpenStack Cloud...
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
 
DUG'20: 03 - Online compression with QAT in DAOS
DUG'20: 03 - Online compression with QAT in DAOSDUG'20: 03 - Online compression with QAT in DAOS
DUG'20: 03 - Online compression with QAT in DAOS
 
Apache Pulsar at Yahoo! Japan
Apache Pulsar at Yahoo! JapanApache Pulsar at Yahoo! Japan
Apache Pulsar at Yahoo! Japan
 
The Flink - Apache Bigtop integration
The Flink - Apache Bigtop integrationThe Flink - Apache Bigtop integration
The Flink - Apache Bigtop integration
 
times ten in-memory database for extreme performance
times ten in-memory database for extreme performancetimes ten in-memory database for extreme performance
times ten in-memory database for extreme performance
 
How to Boost 100x Performance for Real World Application with Apache Spark-(G...
How to Boost 100x Performance for Real World Application with Apache Spark-(G...How to Boost 100x Performance for Real World Application with Apache Spark-(G...
How to Boost 100x Performance for Real World Application with Apache Spark-(G...
 
From shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practicesFrom shipping rpms to helm charts - Lessons learned and best practices
From shipping rpms to helm charts - Lessons learned and best practices
 
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad AssisKubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
Kubernetes is Hard! Lessons Learned Taking Our Apps to Kubernetes by Eldad Assis
 

Recently uploaded

Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escortsranjana rawat
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Christo Ananth
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduitsrknatarajan
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordAsst.prof M.Gokilavani
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...Call Girls in Nagpur High Profile
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...ranjana rawat
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...ranjana rawat
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSSIVASHANKAR N
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGSIVASHANKAR N
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlysanyuktamishra911
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdfKamal Acharya
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesPrabhanshu Chaturvedi
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxfenichawla
 

Recently uploaded (20)

Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
(SHREYA) Chakan Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Esc...
 
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLSMANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
MANUFACTURING PROCESS-II UNIT-5 NC MACHINE TOOLS
 
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur EscortsRussian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
Russian Call Girls in Nagpur Grishma Call 7001035870 Meet With Nagpur Escorts
 
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTINGMANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
MANUFACTURING PROCESS-II UNIT-1 THEORY OF METAL CUTTING
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Glass Ceramics: Processing and Properties
Glass Ceramics: Processing and PropertiesGlass Ceramics: Processing and Properties
Glass Ceramics: Processing and Properties
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 

PostgreSQL major version upgrade using built in Logical Replication

  • 1. Copyright©2018 NTT Corp. All Rights Reserved. PostgreSQL Major Version Upgrade Using built-in Logical Replication NTT OSS Center Atsushi Torikoshi PGConf.ASIA 2018
  • 2. 22Copyright©2018 NTT Corp. All Rights Reserved. • Upgrading PostgreSQL cluster • Introduction to Logical Replication • Architecture and Behavior of Logical Replication • Major version upgrade using logical replication Agenda
  • 3. 33Copyright©2018 NTT Corp. All Rights Reserved. Upgrading PostgreSQL Cluster
  • 4. 44Copyright©2018 NTT Corp. All Rights Reserved. Minor Version Upgrade • e.g. 9.6.0 -> 9.6.1, 10.3 -> 10.6 • always compatible with earlier and later minor releases • just need upgrade the PostgreSQL binary Major Version Upgrade • e.g. 9.5.1 -> 9.6.15, 10.2 -> 11.1 • not always compatible, the internal data storage format can be changed • upgrading the PostgreSQL binary is not enough, it needs also upgrading data files ⇒ several ways for major version upgrade 2 types of version upgrade
  • 5. 55Copyright©2018 NTT Corp. All Rights Reserved. pg_dump o the traditional way for major version up x service downtime during dump and restore pg_upgrade o faster than pg_dump x shorter than pg_dump, but it still needs service downtime link mode is much faster, but you cannot go back the original cluster once you start up the new one Logical Replication o it doesn't need stop PostgreSQL service during replication ⇒ near zero downtime x built-in logical replication is supported only after version 10 3 ways for major version upgrade
  • 6. 66Copyright©2018 NTT Corp. All Rights Reserved. Introduction to Logical Replication
  • 7. 77Copyright©2018 NTT Corp. All Rights Reserved. Physical Replication replicates a whole DB cluster by sending & replaying all the WAL. Looking back Physical Replication Upstream Downstream sendTable Table Table WALWAL WALWAL Table Table Table replay
  • 8. 88Copyright©2018 NTT Corp. All Rights Reserved. Physical Replication cannot do things like: • partial replication(partial data, partial manipulation) • replication between different OS arc/major version PostgreSQL Logical Replication has added flexibility to built-in replication and made these things possible. Motivations for Logical Replication Upstream Downstream decode, sendTable Table Table WALWAL WALWAL Table Table apply write
  • 9. 99Copyright©2018 NTT Corp. All Rights Reserved. So, how can we upgrade our cluster with Logical Replication?
  • 10. 1010Copyright©2018 NTT Corp. All Rights Reserved. 1. Create a new cluster How can we upgrade our cluster with Logical Replication? Current New APP
  • 11. 1111Copyright©2018 NTT Corp. All Rights Reserved. 1. Create a new cluster 2. Start Logical Replication How can we upgrade our cluster with Logical Replication? Current New APP
  • 12. 1212Copyright©2018 NTT Corp. All Rights Reserved. 1. Create a new cluster 2. Start Logical Replication 3. Switch access point How can we upgrade our cluster with Logical Replication? Current New APP
  • 13. 1313Copyright©2018 NTT Corp. All Rights Reserved. 1. Create a new cluster 2. Start Logical Replication 3. Switch access point That’s all. It’s a piece of cake! How can we upgrade our cluster with Logical Replication? Current New APP
  • 14. 1414Copyright©2018 NTT Corp. All Rights Reserved. 1. Create a new cluster 2. Start Logical Replication 3. Switch access point That’s all. It’s a piece of cake! Logical Replication has some limitations and does characteristic behaviors. How can we upgrade our cluster with Logical Replication? Current New APP
  • 15. 1515Copyright©2018 NTT Corp. All Rights Reserved. Architecture and Behaviors of Logical Replication
  • 16. 1616Copyright©2018 NTT Corp. All Rights Reserved. • ‘walsender’ and ‘apply worker’ do most of the works for Logical Replication. Basics of the architecture WAL wal sender Publisher (upstream) write apply worker launcher launch Subscriber(downstream) backend process read decode backend process
  • 17. 1717Copyright©2018 NTT Corp. All Rights Reserved. • ‘walsender’ and ‘apply worker’ do most of the works for Logical Replication. • ‘sync worker’ and the corresponding ‘walsender’ run only at initial table sync. Basics of the architecture WAL wal sender Publisher (upstream) write wal sender apply worker launcher sync worker launch launch Subscriber(downstream) backend process read decode backend process
  • 18. 1818Copyright©2018 NTT Corp. All Rights Reserved. • walsender reads all WAL and decodes* them. Then walsender sends some of them to the subscriber. • apply worker applies that change. *decoding needs the most detailed WAL: wal_level = logical Basics of the architecture ~replication WAL backend process wal sender Publisher write read apply worker Subscriber TableTableTable write decode send change
  • 19. 1919Copyright©2018 NTT Corp. All Rights Reserved. Basics of the architecture ~replication WAL walsender INSERT UPDATE UPDATE DELETE UPDATE apply worker Publisher Subscriber :transaction • walsender reassembles queries according to its transaction. • When INSERT, UPDATE or DELETE is placed, walsender keeps that change in memory.
  • 20. 2020Copyright©2018 NTT Corp. All Rights Reserved. • walsender reassembles queries according to its transaction. • When INSERT, UPDATE or DELETE is placed, walsender keeps that change in memory. Basics of the architecture ~replication WAL walsender INSERT UPDATE UPDATE DELETE UPDATE 1. read WAL apply worker Publisher Subscriber :transaction
  • 21. 2121Copyright©2018 NTT Corp. All Rights Reserved. Basics of the architecture ~replication WAL walsender INSERT INSERT UPDATE UPDATE DELETE UPDATE 1. read WAL 2. decode apply worker Publisher Subscriber :transaction • walsender reassembles queries according to its transaction. • When INSERT, UPDATE or DELETE is placed, walsender keeps that change in memory.
  • 22. 2222Copyright©2018 NTT Corp. All Rights Reserved. Basics of the architecture ~replication WAL walsender INSERT INSERT UPDATE UPDATE DELETE UPDATE 1. read WAL 2. decode 3. reassemble by transaction apply worker Publisher Subscriber :transaction INSERT • walsender reassembles queries according to its transaction. • When INSERT, UPDATE or DELETE is placed, walsender keeps that change in memory.
  • 23. 2323Copyright©2018 NTT Corp. All Rights Reserved. • When the decoded result is COMMIT, ‘walsender’ sends all the changes for that transaction to subscriber. Basics of the architecture ~replication :transaction WAL apply worker walsender COMMIT INSERT UPDATE UPDATE DELETE UPDATE 1. read WAL 2. decode 4. send Publisher Subscriber 3. reassemble by transaction COMMIT
  • 24. 2424Copyright©2018 NTT Corp. All Rights Reserved. • When the decoded result is ROLLBACK, walsender just throws away the changes for that transaction. Basics of the architecture ~replication :transaction WAL walsender ROLLBACK INSERT UPDATE UPDATE DELETE UPDATE ROLLBACK 1. read WAL 2. decode 4. cleanup apply worker Publisher Subscriber 3. reassemble by transaction
  • 25. 2525Copyright©2018 NTT Corp. All Rights Reserved. • When the decoded result is ROLLBACK, walsender just throws away the changes for that transaction. Basics of the architecture ~replication :transaction WAL walsender ROLLBACK INSERT UPDATE UPDATE DELETE 1. read WAL 2. decode 4. cleanup apply worker Publisher Subscriber 3. reassemble by transaction
  • 26. 2626Copyright©2018 NTT Corp. All Rights Reserved. • walsender reassembles queries by its transaction. • When the decoded result is DDL, walsender does NOT replicate it. Basics of the architecture ~replication WAL walsender INSERT UPDATE UPDATE DELETE UPDATE apply worker Publisher Subscriber :transaction CREATE NOT replicated
  • 27. 2727Copyright©2018 NTT Corp. All Rights Reserved. • At initial table synchronization, COPY runs. • COPY is done by dedicated walsender and sync worker. These processes exit after COPY is done. Initial table synchronization WAL backend process wal sender Publisher write read apply worker Subscriber TableTableTable sync worker wal sender write (COPY)
  • 28. 2828Copyright©2018 NTT Corp. All Rights Reserved. 1. Logical Replication does NOT replicate all the data & manipulations 2. It needs additional information on WAL 3. It does initial table synchronization using COPY 4. It transmits data per transaction Summary of the architecture and behavior
  • 29. 2929Copyright©2018 NTT Corp. All Rights Reserved. Major version upgrade using Logical Replication
  • 30. 3030Copyright©2018 NTT Corp. All Rights Reserved. 1. Logical Replication does NOT replicate all the data & manipulation
  • 31. 3131Copyright©2018 NTT Corp. All Rights Reserved. Following objects are not replicated. • view • materialized view • Foreign table • Partition root table 1. Logical Replication does NOT replicate all
  • 32. 3232Copyright©2018 NTT Corp. All Rights Reserved. Following objects are not replicated. • view • materialized view • Foreign table • Partition root table ⇒ These objects can be created data on new DB. Create them before switching 1. Logical Replication does NOT replicate all
  • 33. 3333Copyright©2018 NTT Corp. All Rights Reserved. • Large objects 1. Logical Replication does NOT replicate all
  • 34. 3434Copyright©2018 NTT Corp. All Rights Reserved. • Large objects ⇒ After completion of the replication, run pg_dump only on the large objects and restore them. During this operation, APP needs stop updating 1. Logical Replication does NOT replicate all
  • 35. 3535Copyright©2018 NTT Corp. All Rights Reserved. • Large objects ⇒ After completion of the replication, run pg_dump only on the large objects and restore them. During this operation, APP needs stop updating. or Migrate large objects to normal table 1. Logical Replication does NOT replicate all
  • 36. 3636Copyright©2018 NTT Corp. All Rights Reserved. • Sequence Data generated by sequence are replicated, but sequence objects themselves are NOT replicated 1. Logical Replication does NOT replicate all
  • 37. 3737Copyright©2018 NTT Corp. All Rights Reserved. • Sequence Data generated by sequence are replicated, but sequence objects themselves are NOT replicated ⇒ After completion of the replication, run pg_dump only on the sequence and restore it. During this operation, APP needs stop updating sequences 1. Logical Replication does NOT replicate all
  • 38. 3838Copyright©2018 NTT Corp. All Rights Reserved. • DDL 1. Logical Replication does NOT replicate all
  • 39. 3939Copyright©2018 NTT Corp. All Rights Reserved. • DDL ⇒ If any DDL commands have to be run during replication, run them also on subscriber 1. Logical Replication does NOT replicate all
  • 40. 4040Copyright©2018 NTT Corp. All Rights Reserved. • DDL ⇒ If any DDL commands have to be run during replication, run them also on subscriber About partition child table If partition child tables are created by trigger, it may be possible to run the trigger on subscriber using ENABLE ALWAYS TRIGGER NOTE: Even when using ENABLE ALWAYS TRIGGER, some kind of triggers aren't replicated e.g. UPDATE OF .. FOR EACH ROW 1. Logical Replication does NOT replicate all
  • 41. 4141Copyright©2018 NTT Corp. All Rights Reserved. • TRUNCATE(~ver 10) 1. Logical Replication does NOT replicate all
  • 42. 4242Copyright©2018 NTT Corp. All Rights Reserved. • TRUNCATE(~ver 10) ⇒ Substitute DELETE for TRUNCATE PostgreSQL 11 replicates TRUNCATE☺ 1. Logical Replication does NOT replicate all
  • 43. 4343Copyright©2018 NTT Corp. All Rights Reserved. • Unlogged table The basic idea of logical replication is decoding WAL When there are no WAL, how can we do that? • Global objects The unit of Logical Replication is database, but global objects belong to database cluster. 1. Logical Replication does NOT replicate all
  • 44. 4444Copyright©2018 NTT Corp. All Rights Reserved. • Unlogged table The basic idea of logical replication is decoding WAL When there are no WAL, how can we do that? ⇒ pg_dump • Global objects The unit of Logical Replication is database, but global objects belong to database cluster. ⇒ pg_dumpall 1. Logical Replication does NOT replicate all
  • 45. 4545Copyright©2018 NTT Corp. All Rights Reserved. 2. Logical Replication needs additional information on WAL
  • 46. 4646Copyright©2018 NTT Corp. All Rights Reserved. Consideration for performance: • wal_level = ‘logical’ is most detailed log level. • UPDATE and DELETE on tables need ‘replica identity’ • The default of the replica identity is primary key. • If there are no primary key or suitable columns, set replica identity 'full', which means the entire row becomes the key. 2. needs additional information on WAL
  • 47. 4747Copyright©2018 NTT Corp. All Rights Reserved. Performance and WAL size impacts by wal_level and replica identity • Amount of WAL • Response time 2. needs additional information on WAL wal_level replica identity ⊿LSN Ratio of ⊿LSN logical full 21179088 1.49 logical default 16763896 1.18 replica - 14252616 1 wal_level replica identity avg(response) diff(avg(response)) Logical full 2.132ms -0.020ms logical default 2.126ms -0.026ms replica - 2.152ms - 1 minute pgbench on PostgreSQL 10
  • 48. 4848Copyright©2018 NTT Corp. All Rights Reserved. 3. Initial table synchronization using COPY
  • 49. 4949Copyright©2018 NTT Corp. All Rights Reserved. initial table sync doesn't have parameters which restrict the speed of COPY directly. It may give performance impact on APP 3. initial table synchronization using COPY
  • 50. 5050Copyright©2018 NTT Corp. All Rights Reserved. Adding some delay on network using command tc relieved the impact on client queries 3. initial table synchronization using COPY No delay 100ms delay ms
  • 51. 5151Copyright©2018 NTT Corp. All Rights Reserved. Under some environments, initial table synchronization didn’t consume all the resources because walsenders waited for client responses In this case, we could improve the performance by increasing max_sync_workers_per_subscription 3. initial table synchronization using COPY sync worker = 1 sync worker = 8 kB/s kB/s
  • 52. 5252Copyright©2018 NTT Corp. All Rights Reserved. 4. Transmission per transaction
  • 53. 5353Copyright©2018 NTT Corp. All Rights Reserved. walsender keeps each change of a transaction until COMMIT or ROLLBACK It may cause walsender to use a lot of memory. 4. Transmission per transaction walsender INSERT UPDATE UPDATE DELETE UPDATE Publisher INSERT INSERT UPDATE UPDATE DELETE UPDATE UPDATE DELETE apply worker Subscriber
  • 54. 5454Copyright©2018 NTT Corp. All Rights Reserved. 4. Transmission per transaction Type of manipulation Measuresto prevent memory use Risk long transactions No feature high many transactions many savepoints many changes in one transaction When the number of changes in one transaction exceeds 4096, It has a feature to spill out the change to disk. Low
  • 55. 5555Copyright©2018 NTT Corp. All Rights Reserved. Major upgrade with Logical replication is possible, but it’s not piece of cake. We should watch out for its limitations and behavior such as: • Some data & manipulations are not replicated ⇒ there may be workarounds • Additional information for replication is necessary ⇒ It seems that does not give critical impact Summary
  • 56. 5656Copyright©2018 NTT Corp. All Rights Reserved. • Initial sync may give performance impact on APP ⇒ Tuning on PostgreSQL or network may moderate it • Long or many transactions and many savepoints may lead much memory consumption ⇒ Confirm the way of transactions run Summary
  • 57. 5757Copyright©2018 NTT Corp. All Rights Reserved. Thanks for your cooperation! Shinya Okano@Metro Systems Hibiki Tanaka@Metro Systems
  • 58. 5858Copyright©2018 NTT Corp. All Rights Reserved. Thanks for listening!
  • 59. 5959Copyright©2018 NTT Corp. All Rights Reserved. Comparison between Logical and Physical Replication Physical Logical way of the replication log shipping row-based replication downstream DB copy of the upstream DB not necessarily the same as upstream DB manipulations for downstream DB restricted SELECT, PREPARE, EXECUTE .. No restrictions, but some manipulations may lead to conflict What is replicated ALL views, partition root tables, large objects and some manipulations including DDL are NOT replicated purpose of use high availability load balancing fine-grained replication replication between different environments