Essbaseでのトランザクション・セマンティクスの理解

キューブが読取り/書込みモードの場合、Essbaseではサーバーへのすべての更新リクエスト(データ・ロード、計算、計算スクリプトの文など)がトランザクションとみなされます。

各トランザクションには、現在の状態(アクティブ、コミット済または中止)があります。データはコミットされると、サーバー・メモリーから取得され、ディスク上のキューブに書き込まれます。

キューブ・インスペクタ設定の「トランザクション」タブの「ブロックのコミット/行のコミット」オプションは、Essbaseがデータ・ブロックまたは行をコミットする頻度を示します。

Essbaseでは、トランザクションがブロック単位で読取り/書込みロックを保持できます。Essbaseでは、更新後にブロックが解放されますが、トランザクションが完了するか、設定された制限(同期ポイント)に達するまでブロックはコミットされません。

次の同期ポイント・パラメータを指定して、Essbaseで明示的なコミット操作を実行するタイミングを制御します。


Essbase Webインタフェースにあるキューブ・インスペクタの「設定」>「トランザクション」タブ内の「アンコミット・アクセス」オプションの図。

  • ブロックのコミット(同期ポイントが発生する前に変更されるブロックの数)。指定したブロック数に達すると、Essbaseはコミットします。この頻度は、計算中に動的に調整される場合があります。

    「ブロックのコミット」を0に設定すると、トランザクションの最後に同期ポイントが発生します。

  • 「行のコミット」(同期ポイントが発生する前にロードする行の数)。デフォルトは0で、データ・ロードの終了時に同期ポイントが発生することを意味します。

「ブロックのコミット」または「行のコミット」の値がゼロ以外の場合、最初のしきい値に達すると同期ポイントが発生します。たとえば、「ブロックのコミット」が10で「行のコミット」が0の場合にデータをロードすると、10ブロックが更新された後に同期ポイントが発生します。「ブロックのコミット」が5で「行のコミット」が5の場合にデータをロードすると、5行がロードされた後または5ブロックが更新された後のいずれか早い方に同期ポイントが発生します。

EssbaseサーバーがOracle Exalytics In- Memoryマシンで実行されている場合、「アンコミット・アクセス」設定は適用されません。コミットは、コマンドまたはリクエストの最後に行われます。「ブロックのコミット」または「行のコミット」設定に加えた変更は無視されます。

EssbaseサーバーがWindowsの独立したデプロイメントで実行されている場合、「ブロックのコミット」はデフォルトで3000に設定されます。

操作中にユーザー定義のしきい値を超えた場合は、Essbaseによって同期ポイントが発行されて、そのポイントまでに処理されたデータがコミットされます。Essbaseにより、操作の完了に必要な数だけ同期ポイントが作成されます。

Essbaseは、並列計算の使用可能性の分析中に、「ブロックのコミット」および「行のコミット」の値を分析します。Essbaseで値が低すぎることが検出された場合、値が自動的に増加します。

Essbaseでは、トランザクション・セマンティクスを強制するために冗長データが保持されます。特に「ブロックのコミット」と「行のコミット」の両方が0に設定されている場合、冗長データに対応するためにデータベースのサイズの2倍になるディスク領域が許可されます。

「ブロックのコミット」および「行のコミット」を設定するには
  1. Essbase Webインタフェース「トランザクション」に移動します。
    Redwoodインタフェースで、次を実行します:
    1. 「アプリケーション」ページでアプリケーションを開いて、データベース(キューブ)を開きます。
    2. 「カスタマイズ」「設定」「トランザクション」の順にクリックします。
    クラシックWebインタフェースで、次を実行します:
    1. アプリケーション・ページで、アプリケーションを展開します。
    2. キューブ名の右にある「アクション」メニューから、「設定」「トランザクション」の順にクリックします。
  2. 選択して、「保存」をクリックします。