第46回 PostgreSQLアンカンファレンス@市ヶ谷

2024-03-23に開催された第44回 PostgreSQLアンカンファレンス( https://pgunconf.connpass.com/event/313306/ )のツイートまとめ。 主に #pgunconf タグから拾っています。 今回は、OSS開発自体の苦労話・課題がテーマの発表が多かったです。
3
前へ 1 2 ・・ 9 次へ
ぬこ@横浜 16.2 @nuko_yokohama

ロジカルデコーディング、Decodeの部分までは意識してたけど、SnapshotBuilderやReoderBufferモジュールまでは知らんかった。#pgunconf

2024-03-23 13:50:26
こたつ&&みかん @kota2and3kan

ReorderBuffer が WAL の中から「Tx 毎に」情報を集める感じになるらしい。なるほど。 #pgunconf

2024-03-23 13:52:01
ぬこ@横浜 16.2 @nuko_yokohama

ReorderBufferは更新情報をトランザクションにまとめる役割を持っていると。なるほど。 #pgunconf

2024-03-23 13:52:18
こたつ&&みかん @kota2and3kan

最終的に Tx が ABORT だった場合は buffer にためた内容を丸っと破棄するらしい。 #pgunconf

2024-03-23 13:53:17
ぬこ@横浜 16.2 @nuko_yokohama

@kota2and3kan wal2json、扱いやすくていいですよ。SQLのJSON関数と組み合わせてPL/pgSQLでロジカルデコーダ組めたりします。 #pgunconf

2024-03-23 13:54:10
こたつ&&みかん @kota2and3kan

logical_decoding_work_mem は ReorderBuffer とかの処理で使うメモリなので、デコード対象の全ての Tx のタプルの情報を格納する。メモリがあふれた場合は Disk 等に退避するらしい。 #pgunconf

2024-03-23 13:56:02
ぬこ@横浜 16.2 @nuko_yokohama

サブトランザクションが1件INSERTのケースが非常に遅いと。へー。 #pgunconf 一番大きいTxの選び方は全探索O(n)。

2024-03-23 13:57:32
こたつ&&みかん @kota2and3kan

@nuko_yokohama おぉ、なるほど。JSON 関数とも組み合わせられるんですね。JSON だとアプリ側でも扱いやすいでしょうし、よさそうですね。 #pgunconf

2024-03-23 13:57:42
ぬこ@横浜 16.2 @nuko_yokohama

SAVEPOINTコマンド、ほとんど使ったことなかったから、あんまりサブトランザクション意識したことなかったなあ。 #pgunconf

2024-03-23 13:58:07
こたつ&&みかん @kota2and3kan

既存の仕組みは「サブトランザクションと相性が悪い」って感じなのか。 #pgunconf

2024-03-23 13:58:58
ぬこ@横浜 16.2 @nuko_yokohama

サブトランザクション使うときってvxid払い出されるんだろうか。 #pgunconf

2024-03-23 14:00:28
たいき (Taiki) @taikik1222

合計10万件INSERTでも、10万サブトランザクションがそれぞれ1件INSERTだと、 Logical Decordingが遅い。 それぞれにSAVEPOINTやらEXEPTIONが入っちゃうから、 一番大きいトランザクションを探すのに苦労する。(O(n)) #pgunconf

2024-03-23 14:00:43
こたつ&&みかん @kota2and3kan

今検討されている解決策では「最大サイズの Tx」を O(1) で探せるらしい。すごい。 #pgunconf

2024-03-23 14:00:54
ぬこ@横浜 16.2 @nuko_yokohama

最大xid探索の性能改善のために全探索からbinary heapを使うとのこと。 #pgunconf

2024-03-23 14:01:53
こたつ&&みかん @kota2and3kan

121秒が 3秒にまで改善したらしい。すごい。 #pgunconf

2024-03-23 14:02:23
たいき (Taiki) @taikik1222

線形ではなく、Binary Heapに変更しようとしている。 この場合、最大値の取得はO(1)、値の挿入はO(log n)になる。 来週コミットされれば、PostgreSQL 17入りになる。 #pgunconf

2024-03-23 14:02:47
ナカチャンダヨー @nnaka2992

binary heapを使うときはmax connectionよりトランザクション数が多いときだから既存の用途にはほぼ問題ないらしい #pgunconf

2024-03-23 14:02:51
Fujii Masao @fujii_masao

With many concurrent transactions and subtransactions, evicting the largest one from the reorderbuffer can take time. Currently, we rely on a full scan to find it for eviction. His proposal for v17 is to use a binary heap for rapid identification. #pgunconf

2024-03-23 14:05:40
bbch @itabashi_a

ロジカルデコーディング、今度ちゃんと調べてみよう。 #pgunconf

2024-03-23 14:06:13
こたつ&&みかん @kota2and3kan

ORM を使ってると裏で勝手に SAVEPOINT とかを使ってる場合があるので、気付かないうちにサブトランザクションが増えちゃったりすることもあるらしい。なるほど。 #pgunconf

2024-03-23 14:06:43
たいき (Taiki) @taikik1222

ORマッパーを使ってると、10万サブトランザクションぐらいは、 平気で切ってくる(らしい)。 #pgunconf

2024-03-23 14:06:49
Fujii Masao @fujii_masao

> His proposal for v17 is to use a binary heap for rapid identification. postgresql.org/message-id/fla… #pgunconf

2024-03-23 14:07:42
ぬこ@横浜 16.2 @nuko_yokohama

excptionをループ内で使うと、xidも消費するのか。 #pgunconf

2024-03-23 14:07:53

COPY FROMのフォーマット追加

すとうさんの発表。
内容としてはPostgreSQL開発のやりにくさ、という話になった。

前へ 1 2 ・・ 9 次へ