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

TCCパターン

Try-Confirm/Cancel Pattern

てぃーしーしーぱたーん

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

共有:

Related

関連キーワードの用語

AP補償トランザクション

すでにコミットした処理の効果を、逆向きの処理を実行して打ち消すトランザクション。複数のサービスやデータベースにまたがる処理を1つのトランザクションとしてロックできないときに、途中で失敗したら、完了済みの処理ごとに用意した補償トランザクション(予約の取消し、返金など)を実行して整合性を取る。Sagaパターンで使われる。

APSagaパターン

複数のサービスにまたがる長い業務処理を、サービスごとのローカルトランザクションの連続として実行し、途中で失敗したら、完了済みのローカルトランザクションを補償トランザクションで逆順に打ち消して整合性を取る方式。全体を1つのトランザクションでロックしないので、途中の状態が他の処理から見えることと、結果整合性になることを前提に設計する。各サービスがイベントで連携するコレオグラフィと、調整役が順に指示するオーケストレーションの2つの実装方法がある。

APコミットメント制御

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

AP排他制御

複数のプロセスやトランザクションが共有資源に同時アクセスする際に、データの整合性を保つための制御機構。セマフォ、ミューテックスなどのOS同期機構や、ロック方式(共有ロック・専有ロック)、MVCC等のデータベース制御手法がある。デッドロックの防止も重要な課題。

APトランザクション

データベースに対する一連の処理をまとめた論理的な作業単位。「全て実行」か「全て取消」のいずれかで完了し、途中で中断された状態を残さない。ACID特性(原子性、一貫性、独立性、永続性)を満たす必要がある。

APACID特性

トランザクション処理に求められる4つの特性。Atomicity(原子性:全て実行か全て取消)、Consistency(一貫性:整合性の維持)、Isolation(独立性:他のトランザクションの影響を受けない)、Durability(永続性:完了した結果は失われない)。