Submit Search
PostgreSQL 15の新機能を徹底解説
0 likes
2,041 views
Masahiko Sawada
PostgreSQL Conference Japan 2022で発表した資料です
Software
Read more
1 of 38
Download now
Downloaded 29 times
1
2
3
4
5
6
Most read
7
Most read
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Most read
28
29
30
31
32
33
34
35
36
37
38
More Related Content
What's hot
(20)
PPTX
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
PPTX
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
Vacuum徹底解説
Masahiko Sawada
PDF
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PPT
Cassandraのしくみ データの読み書き編
Yuki Morishita
PDF
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
PDF
まずやっとくPostgreSQLチューニング
Kosuke Kida
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
Dockerを支える技術
Etsuji Nakai
PDF
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
NTT DATA Technology & Innovation
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Vacuum徹底解説
Masahiko Sawada
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Cassandraのしくみ データの読み書き編
Yuki Morishita
pgvectorを使ってChatGPTとPostgreSQLを連携してみよう!(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
まずやっとくPostgreSQLチューニング
Kosuke Kida
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
onozaty
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
Dockerからcontainerdへの移行
Akihiro Suda
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Dockerを支える技術
Etsuji Nakai
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
Similar to PostgreSQL 15の新機能を徹底解説
(20)
PDF
Chugoku db 17th-postgresql-9.6
Toshi Harada
PDF
PostgreSQL10徹底解説
Masahiko Sawada
PDF
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PDF
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
Shigeru Hanada
PDF
Kof2016 postgresql-9.6
Toshi Harada
PDF
PostgreSQL 12の話
Masahiko Sawada
PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
PDF
KOF2015 PostgreSQL 9.5
Toshi Harada
PDF
Postgre sql update_20170310
Haruka Takatsuka
PDF
PostgreSQL 10 新機能 @オープンセミナー香川 2017
Shigeru Hanada
PDF
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PDF
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
PDF
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
Yoshiyuki Asaba
PDF
20171106 ntt-tx-postgre sql-10
Toshi Harada
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQL13 新機能紹介
Satoshi Hirata
PDF
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
PDF
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
PDF
Postgre sql9.3新機能紹介
Daichi Egawa
PDF
Ntt tx-study-postgre sql-10
Toshi Harada
Chugoku db 17th-postgresql-9.6
Toshi Harada
PostgreSQL10徹底解説
Masahiko Sawada
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PostgreSQL 10 新機能 @OSC 2017 Fukuoka
Shigeru Hanada
Kof2016 postgresql-9.6
Toshi Harada
PostgreSQL 12の話
Masahiko Sawada
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
KOF2015 PostgreSQL 9.5
Toshi Harada
Postgre sql update_20170310
Haruka Takatsuka
PostgreSQL 10 新機能 @オープンセミナー香川 2017
Shigeru Hanada
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
位置情報を使ったサービス「スマポ」をPostgreSQLで作ってみた db tech showcase 2013 Tokyo
Yoshiyuki Asaba
20171106 ntt-tx-postgre sql-10
Toshi Harada
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PostgreSQL13 新機能紹介
Satoshi Hirata
20171028 osc-nagaoka-postgre sql-10
Toshi Harada
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
Postgre sql9.3新機能紹介
Daichi Egawa
Ntt tx-study-postgre sql-10
Toshi Harada
Ad
More from Masahiko Sawada
(20)
PDF
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
Masahiko Sawada
PDF
Transparent Data Encryption in PostgreSQL
Masahiko Sawada
PDF
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
Masahiko Sawada
PDF
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Masahiko Sawada
PDF
Bloat and Fragmentation in PostgreSQL
Masahiko Sawada
PDF
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Masahiko Sawada
PDF
今秋リリース予定のPostgreSQL11を徹底解説
Masahiko Sawada
PDF
Vacuum more efficient than ever
Masahiko Sawada
PDF
Vacuumとzheap
Masahiko Sawada
PDF
Parallel Vacuum
Masahiko Sawada
PDF
PostgreSQLでスケールアウト
Masahiko Sawada
PDF
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
Masahiko Sawada
PDF
FDW-based Sharding Update and Future
Masahiko Sawada
PDF
What’s new in 9.6, by PostgreSQL contributor
Masahiko Sawada
PDF
pg_bigmと類似度検索
Masahiko Sawada
PDF
pg_bigmを触り始めた人に伝えたいこと
Masahiko Sawada
PDF
Introduction VAUUM, Freezing, XID wraparound
Masahiko Sawada
PDF
XID周回問題に潜む別の問題
Masahiko Sawada
PPTX
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
PDF
Inside vacuum - 第一回PostgreSQLプレ勉強会
Masahiko Sawada
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
Masahiko Sawada
Transparent Data Encryption in PostgreSQL
Masahiko Sawada
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
Masahiko Sawada
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Masahiko Sawada
Bloat and Fragmentation in PostgreSQL
Masahiko Sawada
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Masahiko Sawada
今秋リリース予定のPostgreSQL11を徹底解説
Masahiko Sawada
Vacuum more efficient than ever
Masahiko Sawada
Vacuumとzheap
Masahiko Sawada
Parallel Vacuum
Masahiko Sawada
PostgreSQLでスケールアウト
Masahiko Sawada
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
Masahiko Sawada
FDW-based Sharding Update and Future
Masahiko Sawada
What’s new in 9.6, by PostgreSQL contributor
Masahiko Sawada
pg_bigmと類似度検索
Masahiko Sawada
pg_bigmを触り始めた人に伝えたいこと
Masahiko Sawada
Introduction VAUUM, Freezing, XID wraparound
Masahiko Sawada
XID周回問題に潜む別の問題
Masahiko Sawada
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
Inside vacuum - 第一回PostgreSQLプレ勉強会
Masahiko Sawada
Ad
PostgreSQL 15の新機能を徹底解説
1.
© 2022, Amazon
Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. PostgreSQL開発者が PostgreSQL15の新機能を 徹底解説 澤田 雅彦 (Sawada Masahiko) Senior Software Development Engineer AWS
2.
© 2022, Amazon
Web Services, Inc. or its affiliates. PostgreSQL 15 が10/15にリリース! 189個 の新機能 (229) 2472個 のコミット (2702) 412人 の開発者 (415) 34人 の日本人開発者 (36)
3.
© 2022, Amazon
Web Services, Inc. or its affiliates. PostgreSQL 10がEOL 3
4.
© 2022, Amazon
Web Services, Inc. or its affiliates. Index • SQL • Logical Replicationの改善 • WAL、リカバリ、バックアップ • 性能 • モニタリング 4
5.
© 2022, Amazon
Web Services, Inc. or its affiliates. 本発表について • 本発表に掲載している検証結果は以下の環境で取得したものです • 環境や条件などによっては、異なる結果となる可能性があります • AWS EC2 m6ld.metal, RHEL8.6, 128 vCPUs, 512GB RAM, SSD 5
6.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGE • ソーステーブルとターゲットテーブルの結合条件を元にテーブルに対して、 INSERT/UPDATE/DELETEを実行できる • SQL標準 6 user_id last_login 100 2022/9/26 11:00 200 2022/7/13 13:00 user_id login_at 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 user_id last_login 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 login_historyテーブル (ソース) user_historyテーブル (ターゲット) user_historテーブル (MERGE後)
7.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGE 7 user_id last_login 100 2022/9/26 11:00 200 2022/7/13 13:00 user_id login_at 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 user_id last_login 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 login_historyテーブル (ソース) user_historyテーブル (ターゲット) user_historテーブル (MERGE後) MERGE INTO user_history u USING login_history l ON (u.user_id = l.user_id) WHEN MATCHED THEN UPDATE SET last_login = l.login_at WHEN NOT MATCHED THEN INSERT VALUES (l.user_id, l.login_at);
8.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGE 8 user_id last_login 100 2022/9/26 11:00 200 2022/7/13 13:00 user_id login_at 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 user_id last_login 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 login_historyテーブル (ソース) user_historyテーブル (ターゲット) user_historテーブル (MERGE後) MERGE INTO user_history u USING login_history l ON (u.user_id = l.user_id) WHEN MATCHED THEN UPDATE SET last_login = l.login_at WHEN NOT MATCHED THEN INSERT VALUES (l.user_id, l.login_at); user_idが一致する行があった場合の動作
9.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGE 9 user_id last_login 100 2022/9/26 11:00 200 2022/7/13 13:00 user_id login_at 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 user_id last_login 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 login_historyテーブル (ソース) user_historyテーブル (ターゲット) user_historテーブル (MERGE後) MERGE INTO user_history u USING login_history l ON (u.user_id = l.user_id) WHEN MATCHED THEN UPDATE SET last_login = l.login_at WHEN NOT MATCHED THEN INSERT VALUES (l.user_id, l.login_at); user_idが一致する行がなかった場合の動作
10.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGEで指定できるアクション • INSERT • UPDATE • DELETE • DO NOTHING 10
11.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGEの注意点 • 各行は0 or 1行と結合できる場合のみ動く • 到達しない条件がある場合はシンタックスエラー (ERROR: unreachable WHEN clause specified after unconditional WHEN clause) 11 11 user_id last_login 100 2022/9/26 11:00 200 2022/7/13 13:00 user_id login_at 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 100 2022/10/31 12:00 user_id last_login 100 2022/10/30 11:50 200 2022/10/14 10:40 300 2022/10/24 15:00 login_historyテーブル (ソース) user_historyテーブル (ターゲット) user_historテーブル (MERGE後) WHEN MATCHED THEN UPDATE SET last_login = l.login_at WHEN NOT MATCHED THEN INSERT VALUES (l.user_id, l.login_at); WHEN MATCHED AND user_id = 100 THEN DO NOTHING;
12.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGEとINSERT … ON CONFLICT • どちらも「格納されている行に応じて動作を切り替える事」が可能 • MERGEはUPDATEだけでなく、INSERT/DELETEを指定することも可能 • MERGEとINSERT … ON CONFLICTは単純には置き換えられない • 同時実行性 • 性能 • トリガ 12
13.
© 2022, Amazon
Web Services, Inc. or its affiliates. MERGEの性能 13 0 2000 4000 6000 8000 10000 12000 INSERT … ON CONFLICT MERGE 300万件UPDATEした場合(ms) 0 1000 2000 3000 4000 5000 6000 7000 INSERT … ON CONFLICT MERGE 300万件INSERTした場合(ms) • 「INSERTしたケース」と「コンフリクトしたからUPDATEしたケース」で INSERT … ON CONFLICTとMERGEの性能を比較
14.
© 2022, Amazon
Web Services, Inc. or its affiliates. Logical Replicationとは • データベースの一部を他のデータベースに複製する機能 • WALをデコードした内容を送信する • Publisher(送信側)とSubscriber(受信側) • PUBLICATIONとSUBSCRIPTION • CDC、BI、メジャーバージョンアップ、マルチマスター 14
15.
© 2022, Amazon
Web Services, Inc. or its affiliates. CREATE SUBSCRIPTION … WITH (two_phase = on) • 2相コミットの情報が複製可能になった • Off(デフォルト)だとPublisherで2相コミットしても、通常のトランザクショ ンとして複製される • 未コミット/未ロールバックのトランザクションがSubscriberにも残るように なるので注意 15
16.
© 2022, Amazon
Web Services, Inc. or its affiliates. 行フィルターと列フィルター CREATE PUBLICATION pub1 FOR TABLE tbl (id, user), tbl2; CREATE PUBLICATION pub2 FOR TABLE tbl WHERE (id % 2 = 0); CREATE PUBLICATION pub3 FOR TABLE tbl (id, user) WHERE (id % 2 = 0); 16 • 送信側でデータをフィルタリング • 同時に指定することも可能
17.
© 2022, Amazon
Web Services, Inc. or its affiliates. スキーマ単位で送信テーブルを指定 • これまではテーブルを複数指定するか、ALL TABLESで全テーブル指定のみ • 指定したスキーマ内の全テーブルを指定可能になった • スキーマに新たに追加されるテーブルも対象 17 CREATE PUBLICATION pub1 FOR TABLE tbl; CREATE PUBLICATION pub2 FOR ALL TABLES; CREATE PUBLICATION pub3 FOR TABLES IN SCHEMA s1;
18.
© 2022, Amazon
Web Services, Inc. or its affiliates. ALTER SUBSCRIPTION … SKIP • より便利になった衝突解決のための新しい手段 • 衝突は様々な場面で起こり得る • 例)Subscriberで同時にINSERTして主キー違反 • 衝突が解決するまでLogical Replicationはリトライし続ける • 衝突を解決するには・・・ • 衝突している行を削除/更新 • Logical Replicationの開始地点を進める 18
19.
© 2022, Amazon
Web Services, Inc. or its affiliates. ALTER SUBSCRIPTION … SKIP ERROR: duplicate key value violates unique constraint "tbl_pkey" DETAIL: Key (c)=(1) already exists. CONTEXT: processing remote data for replication origin "pg_16389" during "INSERT" for replication target relation "public.tbl" in transaction 740 finished at 0/1554338 サーバログ • エラーになった操作、テーブル名、トランザクションID、トランザクション が完了するLSNがサーバログに書かれる • この情報を元に特定のトランザクションをスキップする
20.
© 2022, Amazon
Web Services, Inc. or its affiliates. ALTER SUBSCRIPTION … SKIP ERROR: duplicate key value violates unique constraint "tbl_pkey" DETAIL: Key (c)=(1) already exists. CONTEXT: processing remote data for replication origin "pg_16389" during "INSERT" for replication target relation "public.tbl" in transaction 740 finished at 0/1554338 20 =# ALTER SUBSCRIPTION sub SKIP (lsn = ‘0/1554338’); サーバログ SQL LOG: logical replication starts skipping transaction at LSN 0/1554338 LOG: logical replication completed skipping transaction at LSN 0/1554338 サーバログ
21.
© 2022, Amazon
Web Services, Inc. or its affiliates. pg_basebackupの強化 • データベースクラスタ全体の物理バックアップを取得するツール • サーバ側での圧縮(gzip, lz4, zstd)、クライアント側(gzip, lz4, zstd)での 圧縮をサポート 例)--compress=server-zstd, --compress=client-lz4, --compress=server-zstd:level=9,workers=4 • バックアップの出力先(サーバ or クライアント)を指定可能に 例)--target=server:/some/path, --target=client 21
22.
© 2022, Amazon
Web Services, Inc. or its affiliates. バックアップサイズとバックアップ取得時間を比較 • バックアップサイズは、圧縮方法、圧縮レベルを変えて検証 • バックアップ時間は、圧縮方法、並列数を変えて検証 • 同一サーバ上からpg_basebackupを実行したためサーバ側圧縮のみ実施 22 0 10 20 30 40 50 60 70 80 90 100 none server:zstd server:lz4 server:gzip バックアップ時間(s) 0 1000 2000 3000 4000 5000 6000 7000 8000 9000 none server:zstd server:lz4 server:gzip バックアップサイズ(MB)
23.
© 2022, Amazon
Web Services, Inc. or its affiliates. contrib/basebackup_to_shell • 新しいバックアップ先としてshellを指定できるようになる 例) --target=shell: • shared_preload_libraries = ‘basebackup_to_shell’ • basebackup_to_shell.command = ‘backup.sh %f %d’ 23
24.
© 2022, Amazon
Web Services, Inc. or its affiliates. [非互換] 排他バックアップが廃止 • バックアップには排他モード・非排他モードがあった • SELECT pg_start_backup(‘label’, exclusive_backup => ‘true’); • 排他モードでバックアップ取得中にサーバが再起動すると起動不可になる可 能性がある • 排他モードは廃止 • pg_start_backup()とpg_stop_backup()は、pg_backup_start()と pg_backup_stop()に関数名が変更 • 独自バックアップスクリプトで排他モードを使っている場合は、非排他モー ドに移行する、もしくはpg_basebackupを利用する 24
25.
© 2022, Amazon
Web Services, Inc. or its affiliates. archive_library • WALアーカイブにライブラリを指定可能になった • これまではarchive_commandにシェルコマンドを指定 • archiveプロセスが状態を持ちながら動作可能 • シェルコマンド起動(system()関数)のオーバーヘッドも省ける • リファレンス実装としてcontrib/basic_archiveが追加 (test ! -f /path/to/dest && cp /path/to/src /path/to/des) 25
26.
© 2022, Amazon
Web Services, Inc. or its affiliates. wal_compression = [off, on, pglz, lz4, zstd] • WALの中のFull Page Imageを圧縮する • lz4とzstdが新しく追加 • デフォルトはoff 26 0 200 400 600 800 1000 1200 1400 1600 off pglz lz4 zstd WALサイズ (3GBテーブルを全ページアップデート、FPIの割合約70%)
27.
© 2022, Amazon
Web Services, Inc. or its affiliates. wal_compression = [off, on, pglz, lz4, zstd] 27 0 20000 40000 60000 80000 100000 120000 0 100 200 300 400 500 600 TPS (pgbench -T 300 -M prepared, sf:300) off pglz lz4 zstd
28.
© 2022, Amazon
Web Services, Inc. or its affiliates. contrib/pg_walinspect • pg_waldumpコマンド相当の情報にSQLでアクセスできる 28 =# select * from pg_get_wal_record_info('1/A4619C00'); -[ RECORD 1 ]----+-------------------------------------------------------------------------------------- ------------------------------------- start_lsn | 1/A4619C10 end_lsn | 1/A4619E38 prev_lsn | 1/A4619BD0 xid | 774 resource_manager | Heap record_type | LOCK record_length | 545 main_data_length | 8 fpi_length | 484 description | off 46: xid 774: flags 0x01 LOCK_ONLY EXCL_LOCK block_ref | blkref #0: rel 1663/5/16462 fork main blk 114 (FPW); hole: offset: 268, length: 116, compression saved: 7592, method: zstd
29.
© 2022, Amazon
Web Services, Inc. or its affiliates. contrib/pg_walinspect • pg_waldumpコマンド相当の情報にSQLでアクセスできる 29 =# select * from pg_get_wal_stats('1/A45F7758', '1/B0115CB0') where "resource_manager/record_type" in ('Heap', 'Btree'); -[ RECORD 1 ]----------------+------------------- resource_manager/record_type | Heap count | 400000 count_percentage | 66.66533335999947 record_size | 46147442 record_size_percentage | 78.61281556682036 fpi_size | 78373262 fpi_size_percentage | 57.97230604301556 combined_size | 124520704 combined_size_percentage | 64.2213337278326 -[ RECORD 2 ]----------------+------------------- resource_manager/record_type | Btree count | 200000 count_percentage | 33.33266667999973 record_size | 12554093 record_size_percentage | 21.386073742022592 fpi_size | 56814156 fpi_size_percentage | 42.02514422849502 combined_size | 69368249 combined_size_percentage | 35.77655222013835
30.
© 2022, Amazon
Web Services, Inc. or its affiliates. contrib/pg_walinspect • pg_waldumpコマンド相当の情報にSQLでアクセスできる 30 =# select (sum(fpi_size) / sum(combined_size)) as fpi_ratio from pg_get_wal_stats('1/A45F7758', '1/B0115CB0’); fpi_ratio ------------------------ 0.69724450466641785596 (1 row)
31.
© 2022, Amazon
Web Services, Inc. or its affiliates. log_destination = jsonlog • json形式でサーバログが出力可能になった • logging_collector = onにする必要がある • .jsonファイルにログが書かれる 31 {"timestamp":"2022-11-08 10:13:41.624 ","pid":2934287,"session_id":"6369ad45.2cc60f","line_num":6,"session_start":"2022-11-08 10:13:41 JST","txid":0,"error_severity":"LOG","message":"database system is ready to accept ","backend_type":"postmaster","query_id":0} {"timestamp":"2022-11-08 10:14:09.001","user":"masahiko","dbname":"postgres","pid":2934383,"remote_host":"[local]","session_id":"6369ad5e.2cc6 6f","line_num":1,"ps":"SELECT","session_start":"2022-11-08 10:14:06 ","vxid":"3/2","txid":0,"error_severity":"ERROR","state_code":"42703","message":"column "a" does not ","statement":"select a;","cursor_position":8,"application_name":"psql","backend_type":"client backend","query_id":0}
32.
© 2022, Amazon
Web Services, Inc. or its affiliates. log_destination = jsonlog 32
33.
© 2022, Amazon
Web Services, Inc. or its affiliates. 稼働統計情報が共有メモリベースに変更 • サーバの稼働統計情報(pg_stat_xxxで見れる情報)≠オプティマイザの統計 情報 • これまでは専用プロセス(stats collector)が集めていた • 各プロセスはUDPでstats collectorに統計情報を送信 • 統計情報はファイルで共有 • これからは共有メモリ上で管理。stats collectorプロセスは廃止。 • サーバクラッシュ後に統計情報がリセットされる挙動はこれまでと同じ 33
34.
© 2022, Amazon
Web Services, Inc. or its affiliates. 単一列のソート性能が改善 • 単一列のソート時に扱うデータ量を削減することで、ソート性能が改善 • EXISTSやNOT EXISTSの時によく利用される • 約700MBのテーブルでv14とv15の性能を比較 34 0 0.5 1 1.5 2 2.5 3 v14 v15 実行時間(ms)
35.
© 2022, Amazon
Web Services, Inc. or its affiliates. その他の性能向上 • Parallel SELECT DISTINCT • postgres_fdwがparallel commitをサポート 35
36.
© 2022, Amazon
Web Services, Inc. or its affiliates. 最後に • PG15では、MERGE、ロジカルレプリケーションの強化、pg_basebackupの強 化を含む約200個の新しい改善が導入された • PostgreSQL 10は昨日(11/10)にリリースされた10.23でEOL • PostgreSQL 15.1も同時にリリースされた • これバグかな?と思ったら • もっと知りたい! 36
37.
© 2022, Amazon
Web Services, Inc. or its affiliates. 参考資料 • PostgreSQL 15.0 Documentation (https://www.postgresql.org/docs/15/index.html) • PostgreSQL 15 Release Note (https://www.postgresql.org/docs/15/release-15.html) • 篠田の虎の巻「PostgreSQL 15 Beta 1 新機能検証結果」 (https://h50146.www5.hpe.com/products/software/oe/linux/mainstream/support/lcc/pdf/PostgreSQL_15_Beta_1_New_Features_ja_2022052 4-1.pdf) • PostgreSQL 15検証レポート – SRA OSS (https://www.sraoss.co.jp/tech-blog/wp-content/uploads/2022/10/pg15_report_20221020.pdf) • オンライン物理バックアップの排他モードと非排他モードに ついて (https://www.slideshare.net/nttdata-tech/postgresql-backup-mode-pgunconf34-nttdata) • PostgreSQL の INSERT ON CONFLICT と MERGE の簡易性能比較 (https://qiita.com/fujii_masao/items/462bac9f6a107d6134c4) • PostgreSQL 15 Statistics (http://peter.eisentraut.org/blog/2022/10/25/postgresql-15-statistics) • Speeding up sort performance in PostgreSQL 15 (https://www.citusdata.com/blog/2022/05/19/speeding-up-sort-performance-in-postgres-15/) • Looking ahead at PostgreSQL 15 (https://www.slideshare.net/jkatz05/looking-ahead-at-postgresql-15) • pg_basebackup could not set compression worker count - unsupported parameter (http://rhaas.blogspot.com/2022/11/pgbasebackup-could-not-set-compression.html) 37
38.
© 2022, Amazon
Web Services, Inc. or its affiliates. Thank you! © 2022, Amazon Web Services, Inc. or its affiliates. Masahiko Sawada @masahiko_sawada 38
Download