IT用語帳
PD-Dデータベース · トランザクション処理

コミットメント制御

Commitment Control

こみっとめんとせいぎょ

トランザクションによる更新を、すべて確定する(コミット)か、すべて取り消す(ロールバック)かのどちらかにして、原子性を保証する制御。障害が起きても途中までの更新が残らないようにする。複数のサイトにまたがる分散データベースでは、2相コミットメントなどのプロトコルで全サイトの確定・取消しをそろえる。

共有:

Related

他の資格での定義

FEコミットメント制御

トランザクションの処理がすべて正常に終わったときだけ更新を確定(コミット)し、途中で異常が起きたときは更新をすべて取り消す(ロールバック)ことで、データベースの整合性を保つ制御。複数のサイトにまたがる分散データベースでは、2相コミットメントで全サイトの確定と取消しをそろえる。

APコミットメント制御

トランザクションによる更新を、すべて確定する(コミット)か、すべて取り消す(ロールバック)かのどちらかにして、トランザクションの原子性を保証する制御。途中で障害が起きても、一部だけ更新された状態を残さない。複数のサイトにまたがる分散データベースでは、2相コミットメントなどのプロトコルで全サイトの確定と取消しをそろえる。

PD-Sコミットメント制御

トランザクションによる更新を、すべて確定する(コミット)か、すべて取り消す(ロールバック)かのどちらかにして、原子性を保証する制御。障害が起きても途中までの更新を残さない。複数のサイトにまたがる分散トランザクションでは2相コミットメントで全参加者の確定と取消しをそろえ、ロックを長く保てない複数サービスの処理では補償トランザクションで整合性を取る。

A-1コミットメント制御

トランザクションのすべての処理が正常に終わったときにだけ更新を確定(コミット)し、途中で異常が起きたときは更新をすべて取り消す(ロールバック)ことで、データベースの更新を全部行うか全く行わないかのどちらかにする制御。トランザクションの原子性を保証し、分散データベースでは2相コミットメントが使われる。

Related

関連キーワードの用語

PD-D分散トランザクション

複数のサイト(データベースやリソース)にまたがって更新を行うトランザクション。すべてのサイトで更新を確定するか、すべて取り消すかをそろえる必要があり、2相コミットメントなどのプロトコルで原子性を保証する。サイトの数が増えるほど待ちや障害の影響が大きくなるので、マイクロサービスでは補償トランザクションを使うSagaパターンで結果整合性をとることもある。

A-1バックワードリカバリ(ロールバック)

データベースの障害回復の方法で、ログ(ジャーナル)に記録された更新前の内容を使って、トランザクションによる更新を取り消し、そのトランザクションの開始前の状態に戻すこと。トランザクションの異常終了時や、システム障害時に未完了だったトランザクションの取消しに使われる。

PD-Dデッドロック

複数のトランザクション(プロセス)が、互いに相手が確保している資源の解放を待ち続け、どれも処理を進められなくなる状態。DBMSは待ちグラフに閉路ができたことでこれを検出し、いずれかのトランザクションをロールバックして解消する。予防策には、資源を確保する順序をそろえる、Wait-Die方式やWound-Wait方式のように時刻印で待つか中止するかを決めるといった方法がある。

PD-DACID特性

トランザクションが備えるべき4つの性質。全部実行されるか全く実行されないかの原子性(Atomicity)、実行前後でデータの整合性が保たれる一貫性(Consistency)、同時に実行される他のトランザクションの影響を受けない独立性(Isolation)、確定した結果が障害でも失われない耐久性(Durability)である。DBMSはコミットメント制御、同時実行制御、ログによる障害回復でこれらを実現する。

PD-DWait-Die方式

トランザクションの開始時刻印を使ってデッドロックを予防する方式。ロックを要求したトランザクションが、ロックを持つトランザクションより古ければ待ち(Wait)、新しければ自らロールバックして(Die)、同じ時刻印のまま後で再実行する。古いものだけが新しいものを待つので待ちの閉路ができず、時刻印を保つため再実行を繰り返してもいずれ最古になり処理が進む。

PD-DWound-Wait方式

トランザクションの開始時刻印を使ってデッドロックを予防する方式。ロックを要求したトランザクションが、ロックを持つトランザクションより古ければ相手をロールバックさせてロックを奪い(Wound)、新しければ待つ(Wait)。Wait-Die方式とは逆に、新しいものだけが古いものを待つので閉路ができず、古いトランザクションは待たされない。