トランザクション処理の用語

KTM の使用を開始する前に、トランザクションリソース マネージャートランザクション クライアントトランザクション マネージャーログ ストリーム参加トランザクション処理システムの用語の定義を把握しておく必要があります。

transaction (トランザクション)
トランザクションは、データ操作のコレクションです。 トランザクションが成功するには、すべての操作が成功する必要があります。 すべての操作が成功した場合、トランザクションをコミットできます (つまり、その結果を永続的かつパブリックにすることができます)。 操作が失敗した場合は、トランザクションをロールバックする必要があります (つまり、データがトランザクションの操作が開始される前と同じ状態になるように、すべての変更を削除する必要があります)。

トランザクション操作は、原子性一貫性分離性、および持続性があります (ACID)。

  • 全体としてコミットまたはロールバックする必要があるため、原子性があります。

  • コミットまたはロールバックされるかどうかにかかわらず、操作は常に正確な結果を生成するため、一貫性があります。

  • トランザクションの操作がコミットまたはロールバックされるまで、各トランザクションの結果は他のトランザクションに表示されないため、分離性があります。

  • トランザクションの操作がコミットまたはロールバックされた後、操作の結果は永続的であるため、持続性があります。

トランザクションの例として、自動支払い機 (ATM) を使用して当座預金口座から普通預金口座に送金するときに実行する必要がある一連の操作があります。 当座預金口座からの引き落としと、普通預金口座へのクレジットは、単一の原子的な操作のように見える必要があります。

トランザクションの一部である操作は、トランザクション操作とも呼ばれます。

リソース マネージャー
リソース マネージャーは、トランザクション操作によって更新できるデータ リソースを管理するソフトウェア コンポーネントです。 たとえば、データベース システムを設計する場合は、データベースのデータを格納および取得するリソース マネージャーを提供できます。 単純な トランザクション処理システム (TPS) には、リソース マネージャーが 1 つだけ含まれる場合があります。

通常、リソース マネージャーは、トランザクション クライアントがリソース マネージャーのデータにアクセスするために呼び出すことができるパブリック インターフェイスも提供します。 たとえば、データベースのリソース マネージャーは、クライアントが呼び出してデータベースの読み取りと書き込みを行うことができる一連の関数を提供する場合があります。

より複雑な TPS には複数のリソース マネージャーがあり、それぞれがシステムのトランザクションに参加している間に個別のデータベースまたはその他のリソースを管理します。

リソース マネージャーの詳細については、リソース マネージャーの作成を参照してください。

場合によっては、あるリソース マネージャーが他のリソース マネージャーより上位であり、コミット操作を開始できることがあります。 KTM では、このようなリソース マネージャーは上位トランザクション マネージャーと呼ばれます。

トランザクション クライアント
トランザクション クライアントは、リソース マネージャーがサポートするデータベースにアクセスするソフトウェア コンポーネントです。通常、リソース マネージャーがエクスポートする関数を呼び出します。 クライアントは、トランザクションの作成、リソース マネージャーがサポートする一連の操作の実行、トランザクションのコミットまたはロールバックが必要であることをトランザクション マネージャー (KTM) に通知する役割を担います。

トランザクション クライアントの詳細については、トランザクション クライアントの作成を参照してください。

トランザクション マネージャー
KTM などのトランザクション マネージャーは、トランザクション クライアントとリソース マネージャーが相互に通信できるようにするインフラストラクチャを提供します。 また、各トランザクションの状態も追跡します (ただし、クライアントとリソース マネージャーが処理するデータは追跡されません)。

トランザクション マネージャーは、システム クラッシュ後の復旧操作を調整することもできます。

トランザクション マネージャーには、トランザクションを構成するデータや操作に関する知識がありません。 データと操作は、クライアントとリソース マネージャーによって制御されます。

KTM は、トランザクション クライアントが呼び出すことができる関数を提供します。 これらの関数を使用すると、クライアントはトランザクションを作成、コミット、ロールバックできます。

KTM には、リソース マネージャーが呼び出すことができる関数も用意されています。 これらの関数を使用すると、リソース マネージャーはトランザクションに参加して、トランザクションに関する通知を受け取ることができます。 リソース マネージャーは、トランザクションに参加した後、トランザクション クライアントがトランザクションをコミットまたはロールバックする準備ができたとき、または復旧操作が発生したときに通知を受け取ることができます。

ログ ストリーム
ログ ストリームは、トランザクションに発生したイベントの記録された履歴です。 KTM は共通ログ ファイル システム (CLFS) を使用してログ ストリームを保持します。 KTM は、必要に応じてロールバック操作と復旧操作をサポートできるように、各トランザクションの状態変更を記録します。

リソース マネージャーは、ログ ストリームを使用してデータと操作を記録する必要もあります。

ロールバック操作では、KTM とリソース マネージャーがトランザクションとすべてのデータを初期状態に復元する必要があります。 KTM とリソース マネージャーは、ロールバック操作中にフェッチできるように、各トランザクションの初期状態をログ ストリームに記録します。

復旧操作は、システム クラッシュ後に発生します。 オペレーティング システムが再起動すると、KTM とリソース マネージャーはログ ストリームの内容を使用して、トランザクションの状態をクラッシュ前の状態に再構築できます。

KTM のログ ストリームの詳細については、KTM でのログ ストリームの使用を参照してください。

参加
参加は、リソース マネージャーとトランザクションの間の関連付けです。 KTM には、リソース マネージャーが参加を作成および管理するために呼び出す一連の関数が用意されています。 リソース マネージャーが参加を作成すると、KTM はトランザクションの状態が変化したときにリソース マネージャーに通知を送信します。

トランザクション処理システム
トランザクション処理システム (TPS) は、トランザクション マネージャー、1 つ以上のリソース マネージャー、1 つ以上のログ ストリーム、およびリソース マネージャーのリソースにアクセスする 1 つ以上のトランザクション クライアントのコレクションです。