問題ID:34666
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題ID:34666
msg# 1
macchi_i9
投稿数: 3
回答は「トランザクションAの処理のみ実行され、Bの処理はロールバックされる」ということですが、ドキュメントをみるかぎり、デッドロックを検出した際にどちらがロールバックされるかは不定のようです。
回答の解説を読んだもののなぜトランザクションAが必ず実行されるかわからなかったためご教授いただけませんでしょうか。
お手数おかけしますがよろしくお願いいたします。
v9.6ドキュメント(問題に添付)
https://www.postgresql.jp/document/9.6/html/explicit-locking.html#locking-deadlocks
v11ドキュメント(OSS-DB v2.0は11まで対応なのでこちらも確認しました。)
https://www.postgresql.jp/document/11/html/explicit-locking.html#LOCKING-DEADLOCKS
回答の解説を読んだもののなぜトランザクションAが必ず実行されるかわからなかったためご教授いただけませんでしょうか。
お手数おかけしますがよろしくお願いいたします。
v9.6ドキュメント(問題に添付)
https://www.postgresql.jp/document/9.6/html/explicit-locking.html#locking-deadlocks
v11ドキュメント(OSS-DB v2.0は11まで対応なのでこちらも確認しました。)
https://www.postgresql.jp/document/11/html/explicit-locking.html#LOCKING-DEADLOCKS
Re: 問題ID:34666
msg# 1.1
yama708
投稿数: 10
macchi_i9さんの考えの通り、「デッドロックを検出した際にどちらがロールバックされるかは不定」で合っていると思います。
問題ID:34666の実行例ではたまたま、トランザクションAの処理が実行され、Bの処理がロールバックされているようですが、必ずそうなるとは言えないですね。
問題ID:34666の実行例ではたまたま、トランザクションAの処理が実行され、Bの処理がロールバックされているようですが、必ずそうなるとは言えないですね。
Re: 問題ID:34666
msg# 1.2
staff_naomi
投稿数: 43
macchi_i9さん
ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。
ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。