ヘッダーをスキップ
Oracle TimesTen In-Memory Database概要
リリース7.0
E05163-01
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

キャッシュ・グループのロードと更新

Oracleのデータは、最初にTimesTenにロードされキャッシュ・グループに移入されます。キャッシュ・グループへのロードが終了したら、そのキャッシュ・データは、TimesTenキャッシュ・グループとOracleデータベースのいずれでも更新できます。Cache Connectでは、キャッシュ・グループからOracleへの更新の伝播とOracleからキャッシュ・グループへのデータのリフレッシュを、いずれも自動的に実行できます。

図8.3 データのロードおよび更新の伝播/リフレッシュ

アプリケーションは、次の方法を選択して、OracleデータベースからTimesTenにキャッシュ・グループ・データをロードできます。

この項の後半の内容は次のとおりです。

OracleからTimesTenへの更新

次のメカニズムを使用して、TimesTenキャッシュ・グループを、Orable実表の最新状態と同じ状態に維持できます。

各メカニズムにはメリットとデメリットがあります。増分自動リフレッシュでは変更のあった行のみがリフレッシュされますが、更新を常時監視するにはOracleでのトリガーの使用が必要です。このため、オーバーヘッドが増え、更新が遅くなります。完全自動リフレッシュでは、Oracleで更新を常時監視する必要はありませんが、キャッシュ内であらゆるものが一度に更新されます。手動リフレッシュは、アプリケーションで制御され、特定のキャッシュ・インスタンスと特定のスケジュールに対してカスタマイズできますが、リフレッシュを実行するタイミングを決定するために必要なロジックによって、アプリケーションのオーバーヘッドが増えます。透過的ロードでは、リクエストに応じて特定のデータをOracle表からTimesTenに自動的にロードできます。

様々な状況で、これらのメカニズムは有効です。たとえば、Oracle表の更新が1日に1度のみ行われ、更新される行数が多い場合は、完全自動リフレッシュが最適です。Oracle表の更新頻度は高いものの、それぞれの更新で変更される行数が少ない場合は、増分自動リフレッシュが最適です。また、リフレッシュを実行する必要のあるタイミングがアプリケーションのロジックで既知の場合は、手動リフレッシュが最適です。キャッシュ・コンテンツが動的で、最新のデータを持つ特定のキャッシュ・インスタンスが必要な場合は、透過的ロードが最適です。たとえば、顧客がコール・センターに連絡する場合に、顧客情報を即座にロードすることができます。

TimesTenからOracleへの更新

TimesTenキャッシュ・グループで更新されるデータについては、次のメカニズムを使用することで、Oracleデータベースの状態を最新のキャッシュ・グループと同じ状態に維持できます。

エージング機能

TimesTenにロードされたキャッシュ・インスタンスは、TimesTenから自動的にエージ・アウトできます。使用量ベースのエージングまたは時間ベースのエージングを指定できます。使用量ベースのエージングでは、指定した範囲のメモリー使用量で最低使用頻度(LRU)のデータが削除されます。時間ベースのエージングでは、指定した存続期間および頻度のエージング処理に基づいてデータが削除されます。エージングはキャッシュ・インスタンスに基づいているため、キャッシュ・グループのルート表のみに定義できます。同じシステムに使用量ベースのエージングと時間ベースのエージングを構成できますが、特定のキャッシュ・グループに1つのタイプのエージングしか定義できません。

詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のキャッシュ・グループでのエージングの実装に関する項を参照してください。

パススルー機能

TimesTenアプリケーションでは、TimesTenデータベースへの単一接続を介して、TimesTenキャッシュ・グループまたはOracleデータベースのいずれかにSQL文を送信できます。このような単一接続は、図8.4に示すパススルー機能で、SQL文はTimesTenのキャッシュ表でローカルに処理できるのか、またはOracleに転送する必要があるのかをチェックすることによって使用可能になります。パススルー機能の設定では、パススルーの対象とする文の種類とそれを実行する状況が指定されます。

図8.4 TimesTenパススルー機能

パススルー機能の具体的な動作は、データベース属性PassThroughで制御されます。詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のパススルー・レベルの設定に関する項を参照してください。