TimesTen Application-Tier Database Cacheの概要


Oracle In-Memory Database Cache(Oracle IMDB Cache)はOracle Database製品のオプションであり、応答時間の向上を目的として、Oracleデータベース内のパフォーマンス・クリティカルなサブセットをアプリケーション層にキャッシングするための理想的な製品です。 アプリケーションが、SQL、PL/SQLを使用して、キャッシュ表に対する読取り/書込み操作を実行すると、自動的な永続性、トランザクション一貫性、Oracle Databaseとのデータ同期が実現されます (製品データ・シート(英語))

多くのエンタープライズ・アプリケーションにとって、企業データベース内の大半のデータは頻繁にアクセスされることのない履歴データです。 しかし、このデータの中には、即座に取り出さなくてはならない情報が埋もれています。 たとえば、現在活動中の顧客/ユーザー、予約注文、最新のトランザクション、製品カタログなどのデータをメモリにキャッシングすることで、アプリケーション応答時間が大きく向上する可能性があります。

Oracle In-Memory Database Cacheは、Oracle TimesTen In-Memory Database(Oracle TimesTen)を使用して構築されており、マルチユーザーおよびマルチスレッドのアプリケーションに対応したアプリケーション層にデプロイされます。

アプリケーションはキャッシュ・データベースに接続し、JDBC、ODBC、ADO.NET、Oracle Call Interface、Pro*C/C++、およびOracle PL/SQLプログラミング・インタフェース経由で標準SQLを使用してキャッシュ表にアクセスします。

キャッシュ表は、Oracle TimesTenデータベースの内部にある通常のリレーショナル表と同じように操作でき、永続性とリカバリ可能性を備えています。

Oracle IMDB Cacheを使用するアプリケーションでは、次のキャッシュ・オプションを組み合わせた構成を選択できます。

  • 読取り専用キャッシュ - トランザクションはOracle Database内で実行され、変更がOracle TimesTenキャッシュ・データベースに対してリフレッシュされます。
  • 読取り/書込み(またはライトスルー)キャッシュ - トランザクションはOracle TimesTenキャッシュ・データベース内で実行され、その後でOracle Databaseに伝播されます。
  • オンデマンドまたは事前ロードによるキャッシュ - データは事前にロードするか、またはオンデマンドでロードできます。データをキャッシュ・グリッド・メンバー全体で共有することも、特定のキャッシュ・ノードのみに格納することもできます。

Oracle Databaseとのデータ同期は、自動的に実行されます。

  • 非同期式ライトスルー・キャッシュは、まずローカルでキャッシュ・データベースにトランザクションをコミットしてから、非同期でOracle Databaseへ更新を送信することで、Oracle TimesTenのスピードを活用します。 非同期式ライトスルーのキャッシュ・グループは、アプリケーションの応答時間とトランザクション・スループットの向上を実現します。
  • 同期式ライトスルー・キャッシュは、Oracle Databaseが更新を受け付けられない場合に、キャッシュ・データベースからトランザクションを確実にロールバックします。同期式ライトスルーを使用した場合、Oracle DatabaseとOracle TimesTenデータベースの両方でコミットが完了するまで、アプリケーションは待機する必要があります。
  • 読取り専用キャッシュの場合、Oracle Databaseの増分更新は、アプリケーション層のインメモリ・キャッシュ表に対して、ユーザーの指定した時間間隔で非同期にリフレッシュされます。

Oracle IMDB Cacheは、Oracle Databaseのサーバーまたはネットワーク接続が失われた場合でも継続して稼働するように設計されています。 キャッシュ・データベースにコミットされたトランザクションは追跡および永続化され、Oracle Databaseへの接続が復旧すると、トランザクションがOracle Databaseへ伝播されます。 同様に、Oracle Databaseのソース表にコミットされたトランザクションも追跡され、データベース間の接続が再確立されると、Oracle TimesTenデータベースに対してリフレッシュされます。

Oracle IMDB Cacheはインメモリ・キャッシュ・グリッドを通じて、パフォーマンスと容量に対する水平方向のスケーラビリティを提供します。

インメモリ・キャッシュ・グリッドは、アプリケーションのキャッシュ・データを格納した一連のOracle IMDB Cacheで構成されています。 キャッシュ・データはグリッド・メンバー間で分散されており、アプリケーションからはロケーションを意識することなく、トランザクション一貫性が維持された状態で利用できます。

キャッシュ・グリッド・メンバーの追加と削除はオンラインで実行できるため、アプリ-ションへのサービスが中断することはありません。

アプリケーションのデータ・アクセス・パターンとパフォーマンス要件に応じて、特定のデータ・パーティションを一部のグリッド・メンバーに割り当てることで、局所性を最適化したり、または、すべてのデータをすべてのグリッド・メンバー間で利用可能にすることで、ロケーションの透過性を実現したりすることができます。

キャッシュ・グリッド・ソフトウェアは、すべてのグリッド・メンバー間でキャッシュ一貫性とトランザクション一貫性を管理します。

スタンドアロンのOracle TimesTenデータベースと同様に、Oracle IMDB Cacheはトランザクション・レプリケーションの組込みメカニズムを提供することで、キャッシュ・データベースに高可用性をもたらします。 ほとんどのエンタープライズ・アプリケーションにとって、アプリケーションの停止は許されないため、高可用性とロードバランシングを実現するために、大半のデプロイメントでOracle IMDB Cacheレプリケーションが追加されています。
 

>> TimesTen製品 トップページへ戻る