Skip to main content
© 2022 NTT DATA Corporation
pg_walinspectについて調べてみた!
2022年 12月 20日 第37回PostgreSQLアンカンファレンス@オンライン
株式会社NTTデータ 技術開発本部
加藤 健
© 2022 NTT DATA Corporation 2
自己紹介
加藤 健 (かとう けん)
【経歴】
• PostgreSQLの研究開発+サポート
• 社会人2年目
• PostgreSQL歴 1年+
【これまでのPostgreSQLアンカンファレンス】
• 第29回「OSS-DB Gold 合格体験記」
• 第34回「CloudNativePGを動かしてみた!」
© 2022 NTT DATA Corporation 3
本講演について
• 講演資料はNTTデータのSlideShareで公開しています。
• https://www.slideshare.net/nttdata-tech
• 本講演では、PostgreSQLの拡張機能であるpg_walinspectに
ついて説明します。
• pg_walinspectの概要
• pg_walinspectの使い方
• pg_waldumpとの比較
© 2022 NTT DATA Corporation 4
© 2022 NTT DATA Corporation 4
pg_walinspectの概要
© 2022 NTT DATA Corporation 5
pg_walinspectとは
pg_walinspectとは、PostgreSQL 15からcontribモジュールに新しく追加されたPostgreSQLの拡張機能。
バイナリファイルで出力されるWAL(Write Ahead Log)を人間が読めるように翻訳してくれるツール。
0110101001001010010100101010
0101001011000000111010100111
0100110101010100101010100101
0101010010101001010101010010
0000001010100110101111101001
0101010100101100000000101001
0110100110010101011010110101
0110101101110111010010101001
0101001010100101001010101010
0101010101000000111111111101
0101011101100101101001010110
pg_walinspect
テーブル作成しました!
データ追加しました!
インデックス作成しました!
データ更新しました!
テーブル削除しました!
バイナリファイルのWAL 翻訳後のWAL (イメージ)
© 2022 NTT DATA Corporation 6
pg_walinspectの機能
現在、pg_walinspectとして4つの関数が定義されており、これらの関数を使いWALに関する情報を取得する。
デフォルトでは、関数を使えるユーザは、スーパユーザもしくはpg_read_server_filesロールを持ったユーザに限られる。
1. pg_get_wal_records_info(start_lsn, end_lsn)
• start_lsnとend_lsnの間のWALの内容を1行ずつ表示する。
2. pg_get_wal_records_info_till_end_of_wal(start_lsn)
• start_lsnから最後までのWALの内容を1行ずつ表示する。
3. pg_get_wal_stats(start_lsn, end_lsn, per_records)
• start_lsnとend_lsnの間のWALの統計情報を表示する。
4. pg_get_wal_stats_till_end_of_wal(start_lsn, per_records)
• start_lsnから最後までのWALの統計情報を表示する。
WALの内容を表示する
WALの統計情報を表示する
© 2022 NTT DATA Corporation 7
© 2022 NTT DATA Corporation 7
pg_walinspectの使い方
© 2022 NTT DATA Corporation 8
pg_get_wal_records_info()の使い方 (1/3)
実際にどうやってpg_walinspectを使うのか見てみる。
試しにテーブルを作成し、データを追加してみる。
test=# CREATE EXTENSION pg_walinspect;
CREATE EXTENSION
test=# SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
0/2BB30F0
(1 row)
test=# CREATE TABLE t1(id int);
CREATE TABLE
test=# INSERT INTO t1 VALUES(1);
INSERT 0 1
test=# SELECT pg_current_wal_lsn();
pg_current_wal_lsn
--------------------
0/2BB4260
(1 row)
現在のWALの書き込み位置を返してくれる。
データを追加してみる。
© 2022 NTT DATA Corporation 9
pg_get_wal_records_info()の使い方 (2/3)
pg_get_wal_records_info()に先ほど取得したLSNを指定し、WALの内容を取得する。
テーブル作成とデータ追加で42行のWALレコードが表示された。
test=# SELECT * FROM pg_get_wal_records_info('0/2BB30F0', '0/2BB4260');
start_lsn | end_lsn | prev_lsn | xid | resource_manager | record_type | record_length | main_data_length | fpi_length |
description
| block_ref
-----------+-----------+-----------+-------+------------------+---------------+---------------+------------------+------------+----
--------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------
----------------------------------------------------+-------------------------------------------------
0/2BB30F0 | 0/2BB3128 | 0/2BB2F18 | 0 | Standby | RUNNING_XACTS | 50 | 24 | 0 |
nextXid 10789 latestCompletedXid 10788 oldestRunningXid 107
89
|
...
...
0/2BB4238 | 0/2BB4260 | 0/2BB41F8 | 10790 | Transaction | COMMIT | 34 | 8 | 0 | 2022-12-19 08:38:19.702374+00
|
(42 rows)
先ほど取得したLSNを指定する。
© 2022 NTT DATA Corporation 10
pg_get_wal_records_info()の使い方 (3/3)
データを追加している部分のWALレコードを抜粋して紹介する。
テーブルに初めてデータを追加するので、領域の初期化が行われていることが分かる。
-[ RECORD 41 ]---+-----------------------------------------------------------------------------------------------------------------
--------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
start_lsn | 0/2BB41F8
end_lsn | 0/2BB4238
prev_lsn | 0/2BB4060
xid | 10790
resource_manager | Heap
record_type | INSERT+INIT
record_length | 59
main_data_length | 3
fpi_length | 0
description | off 1 flags 0x00
block_ref | blkref #0: rel 1663/16388/16451 fork main blk 0
-[ RECORD 42 ]---+-----------------------------------------------------------------------------------------------------------------
--------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------
start_lsn | 0/2BB4238
end_lsn | 0/2BB4260
prev_lsn | 0/2BB41F8
xid | 10790
resource_manager | Transaction
record_type | COMMIT
record_length | 34
main_data_length | 8
fpi_length | 0
description | 2022-12-19 08:38:19.702374+00
block_ref |
データの追加と領域の初期化が行われている。
ここでコミットされている。
© 2022 NTT DATA Corporation 11
pg_get_wal_records_info()の出力項目
項目 説明
start_lsn レコードの開始LSN
end_lsn レコードの終了LSN
prev_lsn 1つ前のレコードのLSN
xid トランザクションID
resource_manager リソースマネージャ (どのリソースに対する操作か)
record_type レコードタイプ (どんな操作か)
record_length レコードの長さ (メインデータ、Full-Page Imageも含まれている)
main_data_length メインデータの長さ
fpi_length Full-Page Imageの長さ
description WALレコードに関する詳細情報
block_ref ブロックの変更情報
「1663/16388/16433」は「テーブルスペースのOID/データベースのOID/テーブルのOID」
pg_get_wal_records_info()で出力される各項目について調べてみる。
公式ドキュメントに記載がなかったので、ブログ記事やソースコードを参考にした。
参考にしたブログ記事:
• https://debug-life.net/entry/3364
• https://qiita.com/lynx999/items/a65080ec69dc9c4276fe
© 2022 NTT DATA Corporation 12
pg_get_wal_stats()の使い方 (1/3)
同様に、pg_get_wal_stats()に先ほど取得したLSNを指定し、WALの統計情報を取得する。
per_records=trueにすると、各行がリソースマネージャごとではなく、リソースマネージャ/レコードタイプごとに表示される。
test=# SELECT * FROM pg_get_wal_stats('0/2BB30F0', '0/2BB4260', true);
resource_manager/record_type | count | count_percentage | record_size | record_size_percentage | fpi_size | fpi_size_percentage |
combined_size | combined_size_percentage
------------------------------+-------+--------------------+-------------+------------------------+----------+---------------------+-
--------------+--------------------------
XLOG/NEXTOID | 1 | 2.380952380952381 | 30 | 0.6855575868372943 | 0 | 0 |
30 | 0.6855575868372943
Transaction/COMMIT | 2 | 4.761904761904762 | 439 | 10.03199268738574 | 0 | 0 |
439 | 10.03199268738574
Storage/CREATE | 1 | 2.380952380952381 | 42 | 0.9597806215722121 | 0 | 0 |
42 | 0.9597806215722121
Standby/LOCK | 1 | 2.380952380952381 | 42 | 0.9597806215722121 | 0 | 0 |
42 | 0.9597806215722121
Standby/RUNNING_XACTS | 1 | 2.380952380952381 | 50 | 1.1425959780621573 | 0 | 0 |
50 | 1.1425959780621573
Heap2/MULTI_INSERT | 5 | 11.904761904761905 | 1265 | 28.907678244972576 | 0 | 0 |
1265 | 28.907678244972576
Heap/INSERT | 3 | 7.142857142857143 | 625 | 14.282449725776965 | 0 | 0 |
625 | 14.282449725776965
Heap/INSERT+INIT | 1 | 2.380952380952381 | 59 | 1.3482632541133455 | 0 | 0 |
59 | 1.3482632541133455
Btree/INSERT_LEAF | 27 | 64.28571428571429 | 1824 | 41.681901279707496 | 0 | 0 |
1824 | 41.681901279707496
(9 rows)
© 2022 NTT DATA Corporation 13
test=# SELECT * FROM pg_get_wal_stats('0/2BCB688', '0/2BCCCC8', true);
resource_manager/record_type | count | count_percentage | record_size | record_size_percentage | fpi_size | fpi_size_percentage |
combined_size | combined_size_percentage
------------------------------+-------+--------------------+-------------+------------------------+----------+---------------------+-
--------------+--------------------------
XLOG/NEXTOID | 1 | 1.7857142857142858 | 30 | 0.5402485143165856 | 0 | 0 |
30 | 0.5402485143165856
Transaction/COMMIT | 2 | 3.5714285714285716 | 451 | 8.121735998559338 | 0 | 0 |
451 | 8.121735998559338
Transaction/INVALIDATION | 1 | 1.7857142857142858 | 385 | 6.933189267062849 | 0 | 0 |
385 | 6.933189267062849
Storage/CREATE | 1 | 1.7857142857142858 | 42 | 0.7563479200432199 | 0 | 0 |
42 | 0.7563479200432199
Standby/LOCK | 1 | 1.7857142857142858 | 42 | 0.7563479200432199 | 0 | 0 |
42 | 0.7563479200432199
Standby/RUNNING_XACTS | 1 | 1.7857142857142858 | 50 | 0.9004141905276427 | 0 | 0 |
50 | 0.9004141905276427
Heap2/MULTI_INSERT | 5 | 8.928571428571429 | 1265 | 22.78047902034936 | 0 | 0 |
1265 | 22.78047902034936
Heap2/NEW_CID | 13 | 23.214285714285715 | 780 | 14.046461372231226 | 0 | 0 |
780 | 14.046461372231226
Heap/INSERT | 3 | 5.357142857142857 | 625 | 11.255177381595534 | 0 | 0 |
625 | 11.255177381595534
Heap/INSERT+INIT | 1 | 1.7857142857142858 | 59 | 1.0624887448226183 | 0 | 0 |
59 | 1.0624887448226183
Btree/INSERT_LEAF | 27 | 48.214285714285715 | 1824 | 32.847109670448404 | 0 | 0 |
1824 | 32.847109670448404
(11 rows)
pg_get_wal_stats()の使い方 (2/3)
先ほどはwal_level=replicaだったが、今回はwal_level=logicalで同じ操作を実施する。
Transaction/INVALIDATIONとHeap2/NEW_CIDの行が追加された。
© 2022 NTT DATA Corporation 14
pg_get_wal_stats()の使い方 (3/3)
先ほどはfull_page_write=offだったが、今回はfull_page_write=onで同じ操作を実施する。
fpi_sizeとcombined_sizeが増加した。
test=# SELECT * FROM pg_get_wal_stats('0/2BE4C28', '0/2BE5D60', true);
resource_manager/record_type | count | count_percentage | record_size | record_size_percentage | fpi_size | fpi_size_percentage |
combined_size | combined_size_percentage
------------------------------+-------+--------------------+-------------+------------------------+----------+---------------------+-
--------------+--------------------------
XLOG/NEXTOID | 1 | 2.380952380952381 | 30 | 0.7122507122507122 | 0 | 0 |
30 | 0.042459239130434784
Transaction/COMMIT | 2 | 4.761904761904762 | 439 | 10.422602089268755 | 0 | 0 |
439 | 0.6213201992753623
Storage/CREATE | 1 | 2.380952380952381 | 42 | 0.9971509971509972 | 0 | 0 |
42 | 0.059442934782608696
Standby/LOCK | 1 | 2.380952380952381 | 42 | 0.9971509971509972 | 0 | 0 |
42 | 0.059442934782608696
Standby/RUNNING_XACTS | 1 | 2.380952380952381 | 50 | 1.1870845204178537 | 0 | 0 |
50 | 0.07076539855072464
Heap2/MULTI_INSERT | 5 | 11.904761904761905 | 1265 | 30.033238366571698 | 0 | 0 |
1265 | 1.7903645833333333
Heap/INSERT | 3 | 7.142857142857143 | 625 | 14.838556505223172 | 0 | 0 |
625 | 0.884567481884058
Heap/INSERT+INIT | 1 | 2.380952380952381 | 59 | 1.4007597340930675 | 0 | 0 |
59 | 0.08350317028985507
Btree/INSERT_LEAF | 27 | 64.28571428571429 | 1660 | 39.41120607787274 | 66444 | 100 |
68104 | 96.38813405797102
(9 rows)
© 2022 NTT DATA Corporation 15
pg_get_wal_stats()の出力項目
項目 説明
resource_manager/
record_type
リソースマネージャー/
レコードタイプ
count 回数
count_percentage 割合
record_size レコードサイズ (FPIサイズは含まれない)
record_size_percentage レコードサイズの割合
fpi_size FPIサイズ
fpi_size_percentage FPIサイズの割合
combined_size レコードサイズ+FPIサイズ
combined_size_percentage レコードサイズ+FPIサイズの割合
pg_get_wal_stats()で出力される各項目について調べてみる。
公式ドキュメントに記載がなかったので、ブログ記事やソースコードを参考にした。
参考にしたブログ記事:
• https://debug-life.net/entry/3364
• https://qiita.com/lynx999/items/a65080ec69dc9c4276fe
© 2022 NTT DATA Corporation 16
© 2022 NTT DATA Corporation 16
pg_waldumpとの比較
© 2022 NTT DATA Corporation 17
pg_walinspectができた経緯
類似ツールとして以前からpg_waldumpが存在していた。
にも関わらずなぜpg_walinspectができたのだろう?
While working on one of the internal features, we found that it is
a bit difficult to run pg_waldump for a normal user to know WAL
info and stats of a running postgres database instance in the cloud.
内部機能の一つに取り組んでいるとき、クラウド上のPostgreSQLでWALの内容や統計情報を取得す
るのが難しいことが分かった。
• クラウド上だとコマンドラインへのアクセスがないので、pg_waldumpを実行することができない。
• SQLにすることで、クラウド上からでもWALの内容や統計情報を見ることができる。
• クラウド上でのデバッグに役立つ (特にレプリケーション、リカバリなど)。
• ちなみにpg_walinspectという名前はpageinspectという他の拡張機能から取ってきたみたいです。
メーリングリストでの議論
© 2022 NTT DATA Corporation 18
出力項目の比較 (1/4)
test=# SELECT * FROM pg_get_wal_records_info('0/2B459B0', '0/2B45A50');
start_lsn | end_lsn | prev_lsn | xid | resource_manager | record_type | record_length | main_data_length | fpi_length |
description
| block_ref
-----------+-----------+-----------+-------+------------------+---------------+---------------+------------------+------------+-----
-------------------------------------------------------
---+-------------------------------------------------
0/2B459B0 | 0/2B459F0 | 0/2B45978 | 10771 | Heap | INSERT+INIT | 59 | 3 | 0 | off
1 flags 0x00
| blkref #0: rel 1663/16388/16433 fork main blk 0
0/2B459F0 | 0/2B45A18 | 0/2B459B0 | 10771 | Transaction | COMMIT | 34 | 8 | 0 |
2022-12-07 06:31:07.744727+00
|
0/2B45A18 | 0/2B45A50 | 0/2B459F0 | 0 | Standby | RUNNING_XACTS | 50 | 24 | 0 |
nextXid 10772 latestCompletedXid 10771 oldestRunningXid 107
72 |
(3 rows)
$ bin/pg_waldump -s 0/02B459B0 -e 0/02B45A50 data/pg_wal/000000010000000000000002
rmgr: Heap len (rec/tot): 59/ 59, tx: 10771, lsn: 0/02B459B0, prev 0/02B45978, desc: INSERT+INIT off 1 flags 0x00,
blkref #0: rel 1663/16388/16433 blk 0
rmgr: Transaction len (rec/tot): 34/ 34, tx: 10771, lsn: 0/02B459F0, prev 0/02B459B0, desc: COMMIT 2022-12-07
06:31:07.744727 UTC
rmgr: Standby len (rec/tot): 50/ 50, tx: 0, lsn: 0/02B45A18, prev 0/02B459F0, desc: RUNNING_XACTS nextXid 10772
latestCompletedXid 10771 oldestRunningXid 10772
pg_walinspect
pg_waldump
実際にpg_walinspectとpg_waldumpを出力して、項目を比較してみる。
ここではWALの内容について比較してみる。
© 2022 NTT DATA Corporation 19
出力項目の比較 (2/4)
pg_walinspect pg_waldump
start_lsn lsn
end_lsn
prev_lsn prev
xid tx
resource_manager rmgr
record_type desc
record_length tot
main_data_length
fpi_length tot - rec
description desc
block_ref blkref
実際に出力してみた結果、ほぼ同じ項目が出力されていることが分かる。
違いとしては、pg_waldumpにはend_lsn、main_data_lengthに相当する項目がない。
© 2022 NTT DATA Corporation 20
出力項目の比較 (3/4)
$ bin/pg_waldump -s 0/02B459B0 -e 0/02B45A50 --stats=record data/pg_wal/000000010000000000000002
WAL statistics between 0/2B459B0 and 0/2B45A50:
Type N (%) Record size (%) FPI size (%) Combined
size (%)
---- - --- ----------- --- -------- --- --------
----- ---
Transaction/COMMIT 1 ( 33.33) 34 ( 23.78) 0 ( 0.00)
34 ( 23.78)
Standby/RUNNING_XACTS 1 ( 33.33) 50 ( 34.97) 0 ( 0.00)
50 ( 34.97)
Heap/INSERT+INIT 1 ( 33.33) 59 ( 41.26) 0 ( 0.00)
59 ( 41.26)
test=# SELECT * FROM pg_get_wal_stats('0/2B459B0', '0/2B45A50', true);
resource_manager/record_type | count | count_percentage | record_size | record_size_percentage | fpi_size | fpi_size_percentage |
combined_size | combined_size_percentage
------------------------------+-------+--------------------+-------------+------------------------+----------+---------------------+-
--------------+--------------------------
Transaction/COMMIT | 1 | 33.333333333333336 | 34 | 23.776223776223777 | 0 | 0 |
34 | 23.776223776223777
Standby/RUNNING_XACTS | 1 | 33.333333333333336 | 50 | 34.96503496503497 | 0 | 0 |
50 | 34.96503496503497
Heap/INSERT+INIT | 1 | 33.333333333333336 | 59 | 41.25874125874126 | 0 | 0 |
59 | 41.25874125874126
(3 rows)
pg_walinspect
pg_waldump
実際にpg_walinspectとpg_waldumpを出力して、項目を比較してみる。
ここではWALの統計情報について比較してみる。
© 2022 NTT DATA Corporation 21
出力項目の比較 (4/4)
pg_walinspect pg_waldump
resource manager/record_type Type
count N
count_percentage (%)
record_size Record size
record_size_percentage (%)
fpi_size FPI size
fpi_size_percentage (%)
combined_size Combined Size
combined_size_percentage (%)
実際に出力してみた結果、全く同じ項目が出力されていることが分かる。
© 2022 NTT DATA Corporation 22
まとめ
• pg_walinspectとpg_waldumpはほぼ一緒の項目を出力する。
• 大きな違いとしては、pg_waldumpはコマンドとして実行するが、pg_walinspectはSQLとして実行することができる。
• SQLにすることにより、クラウド上でもWALの内容、統計情報を取得することができ、レプリケーションやリカバリのデバッグ
に役立つ。
• SQLにすることで、pg_waldumpのようにオプションを指定せずとも、一定値以上のレコードを調べることができるように
なった。
• 個人的な感想
• pg_waldump, pg_walinspectともに、公式ドキュメントに各出力項目の説明がなく、調べるのが大変だった。
© 2022 NTT DATA Corporation
その他、記載されている会社名、商品名、又はサービス名は、
各社の登録商標又は商標です。
© 2022 NTT DATA Corporation 24
参考文献 (1/2)
• コミットログ
• https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=2258e76f90bf0254504644
df0515cddc0c0a87f9
• メーリングリストの議論
• https://www.postgresql.org/message-
id/flat/CALj2ACUGUYXsEQdKhEdsBzhGEyF3xggvLdD8C0VT72TNEfOiog%40mail.gmail.com
• 公式ドキュメント(PG15版)
• https://www.postgresql.org/docs/15/pgwalinspect.html
© 2022 NTT DATA Corporation 25
参考文献 (2/2)
• ブログ記事・過去の発表資料
• http://www.dbaglobe.com/2022/07/postgresql-15-new-feature-pgwalinspect.html
• https://www.slideshare.net/masahikosawada98/postgresql-15-254529770
• https://debug-life.net/entry/3364
• https://qiita.com/lynx999/items/a65080ec69dc9c4276fe
• https://www.kimullaa.com/posts/201910271500/
• https://qiita.com/yamaguchi_yy449/items/4ffae4ef334e741edb37#%E5%8F%82%E8%80%
83-pg_walinspect
© 2022 NTT DATA Corporation 26
リソースマネージャ/レコードタイプの一覧
リソースマネージャ レコードタイプ
XLOG CHECKPOINT_SHUTDOWN
CHECKPOINT_ONLINE
NOOP
NEXTOID
SWITCH
BACKUP_END
PARAMETER_CHANGE
RESTORE_POINT
FPW_CHANGE
END_OF_RECOVERY
OVERWRITE_CONTRECORD
FPI
FPI_FOR_HINT
Transaction COMMIT
PREPARE
ABORT
COMMIT_PREPARED
ABORT_PREPATRED
ASSIGNMENT
INVALIDATION
© 2022 NTT DATA Corporation 27
リソースマネージャ/レコードタイプの一覧
Storage CREATE
TRUNCATE
CLOG ZEROPAGE
TRUNCATE
Database CREATE_FILE_COPY
CREATE_WAL_LOG
DROP
Tablespace CREATE
DROP
MultiXact ZERO_OFF_PAGE
ZERO_MEM_PAGE
CREATE_ID
TRUNCATE_ID
RelMap UPDATE
Standby LOCK
RUNNING_XACTS
INVALIDATIONS
© 2022 NTT DATA Corporation 28
リソースマネージャ/レコードタイプの一覧
Heap2 PRUNE
VACUUM
FREEZE_PAGE
VISIBLE
MULTI_INSERT
MULTI_INSERT+INIT
LOCK_UPDATED
NEW_CID
Heap INSERT
INSERT+INIT
DELETE
UPDATE
UPDATE+INIT
HOT_UPDATE
HOT_UPDATE+INIT
TRUNCATE
HEAP_CONFIRM
LOCK
INPLACE
© 2022 NTT DATA Corporation 29
リソースマネージャ/レコードタイプの一覧
Btree INSERT_LEAF
INSERT_UPPER
INSERT_META
SPLIT_L
SPLIT_R
INSERT_POST
DEDUP
VACUUM
DELETE
MARK_PAGE_HALFDEAD
UNLINK_PAGE
UNLINK_PAGE_META
NEWROOT
REUSER_PAGE
META_CLEANUP
© 2022 NTT DATA Corporation 30
リソースマネージャ/レコードタイプの一覧
Hash INIT_META_PAGE
INIT_BITMAP_PAGE
INSERT
ADD_OVFL_PAGE
SPLIT_ALLOCATE_PAGE
SPLIT_PAGE
SPLIT_COMPLETE
MOVE_PAGE_CONTENTS
SQUEEZE_PAGE
DELETE
SPLIT_CLEANUP
UPDATE_META_PAGE
VACUUM_ONE_PAGE
Gin CREATE_PTREE
INSERT
SPLIT
VACUUM_PAGE
VACUUM_DATA_LEAF_PAGE
DELETE_PAGE
UPDATE_META_PAGE
INSERT_LISTPAGE
DELETE_LISTPAGE
© 2022 NTT DATA Corporation 31
リソースマネージャ/レコードタイプの一覧
Gist PAGE_UPDATE
DELETE
PAGE_REUSE
PAGE_SPLIT
PAGE_DELETE
ASSOGM_LSN
Sequence LOG
SPGist ADD_LEAF
MOVE_LEAFS
ADD_NODE
SPLIT_TUPLE
PICKSPLIT
VACUUM_LEAF
VACUUM_ROOT
VACUUM_REDIRECT
© 2022 NTT DATA Corporation 32
リソースマネージャ/レコードタイプの一覧
BRIN CREATE_INDEX
INSERT
INSER+INIT
UPDATE
UPDATE+INIT
SAMEPAGE_UPDATE
REVMAP_EXTEND
DESUMMARIZE
CommitTs ZEROPAGE
TRUNCATE
ReplicationOrigin SET
DROP
Generic Generic
LogicalMessage MESSAGE
参照:
• src/include/access/rmgrlist.h
• src/backend/access/rmgrdesc/*.c