SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
澤田 雅彦
@PostgreSQLアンカンファレンス
「LOG: process 12345 still waiting for ShareLock on
transaction 710 after 1000.269 ms」
のログについて
2
• 行ロック取得時(SELECT … FOR UPDATEなど)に、既に行ロックを取得しているトランザクションの完了(=
行ロックの開放)を待つときに出るログ
• トランザクションIDへのロックとは?
• それがなぜ行ロックに関係しているのか?
• 一方、LOG: process 58992 still waiting for AccessExclusiveLock on tuple (0,1) of relation 16384 of database
13021 after 1000.256 ms というログも出る
• FOR UPDATEのケースのみ解説します
LOG: process 61648 still waiting for ShareLock on transaction 710 after 1000.269 ms
DETAIL: Process holding the lock: 59735. Wait queue: 61648.
CONTEXT: while locking tuple (0,1) in relation "test"
3
ロックマネージャ(lmgr)
• ロックを管理する内部コンポーネント(すべてのプロセスで共有している)
• リレーション, タプル, ページ, トランザクションIDなど様々なものに対してロックが取得できる
• pg_locksビューで中身が見れる
• デッドロック検知機能がついている(deadlock_timeout)
• ロック待ちが発生するとログを出す(log_lock_waits)
• ロックは、スピンロック、軽量ロック、SIロックなど他にも色々ある
4
ロックレベル
5
トランザクションIDへのロック
• トランザクションID=各トランザクションが持つ一意の非負整数値
• トランザクションIDが払い出されたら、各トランザクションは自分のトランザクション
IDに対して排他ロックを取得する
• 自分のトランザクションIDに対する排他ロックはトランザクション完了時に開放される
6
トランザクションIDへのロック待ちとは?
LOG: process 61648 still waiting for ShareLock on transaction 710 after 1000.269 ms
• あるトランザクションIDへの共有ロックが取得できた=そのトランザクションが完了し
た
• 行ロックはこれを利用している
• つまりこのログは「あるトランザクション(xid=710)が先に行ロックを取得していて、プ
ロセス(pid=61648)はそのトランザクションが行ロックを開放するのを待っている」と理
解できる
7
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く
BE-1
BE-2
Lmgr
Tuple
8
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く
BE-1
BE-2
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
9
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く
BE-1
BE-2
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
10
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
11
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く
BE-1
BE-2
100
XID=100
XID=200
XID=100

EXL (BE-1)
XID=200

EXL (BE-2)
Lmgr
Tuple
12
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く
BE-1
BE-2
100
XID=100
XID=200
XID=100

EXL (BE-1)
XID=200

EXL (BE-2)
Lmgr
Tuple
13
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く
BE-1
BE-2
100
XID=100
XID=200
XID=100

EXL (BE-1)
XID=200

EXL (BE-2)
Lmgr
Tuple
SHL (BE-2)
14
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く BE-2
100
XID=200
XID=200

EXL (BE-2)
Lmgr
Tuple
XID=100

SHL (BE-2)
15
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く BE-2
100
XID=200
XID=200

EXL (BE-2)
Lmgr
Tuple
16
ざっくりとした流れ
1. 自分のトランザクションIDに排他ロックを
取得
2. タプルのXMAXを確認して行ロックを取得
しているトランザクションを確認
3. 行ロックを取得しているトランザクション
の完了を待つ(=XIDへの共有ロックの取得)
4. 自分のXIDをXMAXに書く BE-2
200
XID=200
XID=200

EXL (BE-2)
Lmgr
Tuple
17
実はこれだけではうまく動かない
• 後から待ち始めたトランザクションが先に行ロックを取得できてしまう
18
行に対するロックをlmgr上で取得する
1. 自分のトランザクションIDに排他ロックを取得
2. 対象となる行に対してAccessExclusiveLockを取得
3. タプルのXMAXを確認して行ロックを取得しているトランザクションを確認
4. 行ロックを取得しているトランザクションの完了を待つ(=XIDへの共有ロックの取得)
5. 自分のXIDをXMAXに書く
6. 2で取得したAccessExclusiveLockを開放
19
BE-1
BE-2
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
20
BE-1
BE-2
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
21
BE-1
BE-2
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
tuple=(0,1)

AEL (BE-1)
22
BE-1
BE-2
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
tuple=(0,1)

AEL (BE-1)
23
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
tuple=(0,1)

AEL (BE-1)
24
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
25
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=200
XID=200

EXL (BE-2)
26
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=200
XID=200

EXL (BE-2)
tuple=(0,1)

AEL (BE-2)
27
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=200
XID=200

EXL (BE-2)
tuple=(0,1)

AEL (BE-2)
SHL (BE-2)
28
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=200
XID=200

EXL (BE-2)
tuple=(0,1)

AEL (BE-2)
SHL (BE-2)
LOG: process 61648 still
waiting for ShareLock on
transaction 710 after
1000.269 ms
29
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=200
XID=200

EXL (BE-2)
tuple=(0,1)

AEL (BE-2)
SHL (BE-2)
BE-3
XID=300
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=300

EXL (BE-3)
30
BE-1
BE-2
100
XID=100
XID=100

EXL (BE-1)
Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=200
XID=200

EXL (BE-2)
SHL (BE-2)
BE-3
XID=300
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
AEL (BE-3)
tuple=(0,1)

AEL (BE-2)
XID=300

EXL (BE-3)
31
BE-1
BE-2
100
XID=100 Lmgr
Tuple
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=200 BE-3
XID=300
1. Acquire the XID lock in EXL

2. Acquire the tuple lock in AEL

3. Check the blocker

4. Wait for the blocker to finish

5. Write own XID to XMAX field

6. Release the tuple lock
XID=100

EXL (BE-1)
XID=200

EXL (BE-2)
SHL (BE-2) AEL (BE-3)
tuple=(0,1)

AEL (BE-2)
XID=300

EXL (BE-3)
LOG: process 58992 still
waiting for
AccessExclusiveLock on
tuple (0,1) of relation
32
まとめ
• トランザクションは自分のトランザクションIDに対して排他ロックを取得する
• トランザクションIDに対する共有ロックの要求=そのトランザクションの完了待ち
• 最初に行ロックを待つトランザクションはトランザクションIDへの共有ロック待ちでログを出す
• それ以降に行ロックを待つトランザクションはタプルへの排他ロック待ちでログを出す
• タプルに対して(lmgr上で)AELを取得する事で待ち順を制御する
• 自分のブログでも以前にまとめています

トランザクションIDへのロックと行ロック: https://masahikosawada.github.io/2018/09/04/Row-locking-and-locking-on-
transactionid/

Contenu connexe

Tendances

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)NTT DATA Technology & Innovation
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -onozaty
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...NTT DATA Technology & Innovation
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSNoriyoshi Shinoda
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRecruit Technologies
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方歩 柴田
 

Tendances (20)

Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL初心者がパッチを提案してからコミットされるまで(第20回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
PostgreSQL13でのレプリケーション関連の改善について(第14回PostgreSQLアンカンファレンス@オンライン)
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
今からでも遅くないDBマイグレーション - Flyway と SchemaSpy の紹介 -
 
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVSPostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
 
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけRDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 

Plus de Masahiko Sawada

Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLMasahiko Sawada
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -Masahiko Sawada
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Masahiko Sawada
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLMasahiko Sawada
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Masahiko Sawada
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説Masahiko Sawada
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than everMasahiko Sawada
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~Masahiko Sawada
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説Masahiko Sawada
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and FutureMasahiko Sawada
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorMasahiko Sawada
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介Masahiko Sawada
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索Masahiko Sawada
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことMasahiko Sawada
 
Introduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundIntroduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundMasahiko Sawada
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題Masahiko Sawada
 

Plus de Masahiko Sawada (20)

Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQL
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQL
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than ever
 
Vacuumとzheap
VacuumとzheapVacuumとzheap
Vacuumとzheap
 
Parallel Vacuum
Parallel VacuumParallel Vacuum
Parallel Vacuum
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributor
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいこと
 
Introduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundIntroduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparound
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題
 

行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 after 1000.269 ms」のログについて