6 TimesTen Scaleoutでの分散トランザクションの理解
TimesTen Scaleoutでは、分散トランザクションは2フェーズ・コミット・プロトコルによって処理されます。この章では、TimesTen Scaleoutが分散トランザクションを介してACID準拠のデータベースを保守する方法について説明します。
TimesTen Scaleoutで採用されている分散トランザクション処理アルゴリズムの理解に関連する用語は、次のとおりです。
-
参加者: 分散トランザクションから1つ以上のSQL文を実行する要素。データベース内のすべての要素がすべてのトランザクションに参加するわけではありません。要素は、トランザクションの1つ以上の操作でその要素に格納されているデータにアクセスする必要がある場合にのみ、そのトランザクションの参加者になります。
ノート:
各要素には、専用の独立したチェックポイントおよびトランザクション・ログ・ファイルのセットが保持されます。これらは、TimesTen Classicのデータベースのチェックポイントおよびトランザクション・ログ・ファイルと同様に動作します。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のチェックポイント操作およびトランザクション・ロギングを参照してください。
-
トランザクション・マネージャ: データベースに接続され、トランザクションを開始するアプリケーション(クライアント/サーバー・アプリケーションの場合はTimesTenサーバー)のスレッド。トランザクション・マネージャは、すべての参加者とトランザクション操作を調整します。
-
コミットの準備ログ・レコード: 2フェーズ・コミットのプロトコルの準備フェーズ中にデータベースのトランザクション・ログに書き込まれるログ・レコードのタイプ。これには、トランザクションのコミットの決定が含まれます。
-
永続ログ・レコード: 参加者がトランザクション・ログと同期してコミットの準備またはコミット・ログ・レコードに書き込みます。非永続ログ・レコードは、参加者によって非同期に書き込まれます。
-
分散トランザクション: 2つ以上の参加者があるトランザクション。
-
単一要素トランザクション: 参加者が1つのみのトランザクション。単一要素トランザクションでは、2フェーズ・コミットのプロトコルを使用しません。単一要素トランザクションは、K-safetyが
1
に設定されているグリッド内でのみ使用できます。 -
インダウト・トランザクション: 参加者がコミットの準備ログ・レコードを書き込んだが、コミット・ログ・レコードがトランザクション・ログに存在していないトランザクション。トランザクション・マネージャがコミットの準備ログ・レコードをトランザクション・ログ書き込んだ場合は、既知のミットの決定があることを意味し、トランザクションはインダウトではありません。
-
リモート接続: トランザクション・マネージャからトランザクションの参加者への接続。
この章には次のトピックが含まれます: