IT用語帳
PD-Dデータベース · データベース応用

分散トランザクション

Distributed Transaction

ぶんさんとらんざくしょん

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

共有:

Related

他の資格での定義

Past Exams

過去問での出題

過去問で 9 回出題(応用情報技術者試験 5・ITパスポート試験 1・データベーススペシャリスト試験 1・情報処理安全確保支援士試験 1・高度試験 午前Ⅰ 1)

出典: 独立行政法人情報処理推進機構(IPA)の過去問題。問題文は IPA のサイトの PDF で確認できます。「選択肢」は、問題文ではなく選択肢に出たものです。用語名で照合しているため、関係の薄い問題が含まれることがあります。

Related

関連キーワードの用語

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

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

PD-DACID特性

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

PD-D補償トランザクション

すでにコミットした処理の効果を、逆向きの処理を実行して打ち消すトランザクション。複数のサービスにまたがる長い業務処理(Sagaパターン)では全体を1つのトランザクションでロックできないので、途中の処理が失敗したら、完了済みの各処理に対応する補償トランザクション(予約の取消し、返金など)を実行する。元の状態に厳密に戻るとは限らず、その間に他の処理が中間状態を参照し得ることも考慮する。

APTCCパターン

複数のサービスにまたがる処理の整合性を保つため、各サービスの処理をTry(資源の仮押さえと業務上の検査)、Confirm(仮押さえした内容の確定)、Cancel(仮押さえの取消し)の3つの操作に分けて実装する方式。調整役が全サービスにTryを依頼し、すべて成功したらConfirmを、1つでも失敗したらCancelを指示する。2相コミットメントに似た手順を業務処理として実現するもので、データベースのロックを長く持ち続けずに済む。

AP分散データベース

ネットワークで結ばれた複数のサイトにデータを分けて配置しながら、利用者からは1つのデータベースとして扱えるようにしたもの。データの所在や複製の有無を意識させない透過性を備え、負荷の分散と可用性の向上を図れるが、サイトにまたがる更新の整合性を保つため、2相コミットメントなどの制御が必要になる。

A-12相コミットメント

分散データベースで、複数のサイトにまたがるトランザクションの原子性を保証するための制御方式。第1相で調停役が各サイトにコミットの準備ができたかを問い合わせ、全サイトが可と答えた場合だけ第2相でコミットを指示し、1つでも否なら全サイトでロールバックさせる。