SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
澤田 雅彦
@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/

Más contenido relacionado

La actualidad más candente

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編Miki Shimogai
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
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
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門Akira Shimosako
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoTakayuki Shimizukawa
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜Naruhiko Ogasawara
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界Yoshinori Nakanishi
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうkasaharatt
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Web Services Japan
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法yoku0825
 

La actualidad más candente (20)

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
 
SQLチューニング入門 入門編
SQLチューニング入門 入門編SQLチューニング入門 入門編
SQLチューニング入門 入門編
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
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...
 
アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門アクセスプラン(実行計画)の読み方入門
アクセスプラン(実行計画)の読み方入門
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界あなたの知らないPostgreSQL監視の世界
あなたの知らないPostgreSQL監視の世界
 
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
Memoizeの仕組み(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
 
Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身Amazon Aurora - Auroraの止まらない進化とその中身
Amazon Aurora - Auroraの止まらない進化とその中身
 
MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 

Más de Masahiko Sawada

PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報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
 

Más de Masahiko Sawada (20)

PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
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
 

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