Oracle TimesTen Application-Tier Database
  Cacheの概要



Oracle TimesTen Application-Tier Database Cache(TimesTen Cache)は、パフォーマンスクリティカルなOracleデータベースのサブセットをアプリケーション層でキャッシュし、レスポンス時間を向上させるのに最適なOracle Database製品のオプションです。アプリケーションは、自動永続性、トランザクション一貫性、Oracleデータベースとのデータ同期機能とともに、SQLおよびPL/SQLを使用して、キャッシュ表で読取り/書込み処理を実行します。(製品データ・シート

多くのエンタープライズ・アプリケーションでは、企業データベースに存在するデータの大半は履歴であり、頻繁にアクセスされることはありません。しかしながら、そのようなデータの中には、瞬時にアクセスできなければならない情報も含まれています。現在アクティブな顧客/ユーザー、未処理の注文、最近の取引、製品カタログなどがその例です。これらのデータをメモリにキャッシュすると、アプリケーションのレスポンス時間を大幅に向上させることができます。

Oracle TimesTen Application-Tier Database Cacheは、Oracle TimesTen In-Memory Database(Oracle TimesTen)を使用して構築されており、マルチユーザーおよびマルチスレッド・アプリケーションのアプリケーション層にデプロイされます。アプリケーションは、標準SQLを使用して、JDBC、ODBC、ADO.NET、Oracle Call Interface(OCI)、Pro*C/C++、Oracle PL/SQLといったプログラミング・インタフェース経由でキャッシュ・データベースに接続し、キャッシュ表にアクセスします。キャッシュ表は、Oracle TimesTenデータベース内にある通常のリレーショナル表と同じように処理されます。また、永続性とリカバリ可能性を備えています。

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

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

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

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

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

TimesTen Cacheは、インメモリ・キャッシュ・グリッドを通じて、パフォーマンスと容量で水平方向のスケーラビリティを提供します。インメモリ・キャッシュ・グリッドは、アプリケーションのキャッシュ・データを格納した一連のTimesTen Cacheで構成されています。キャッシュ・データは、グリッド・メンバー間で分散され、アプリケーションに対して、位置の透過性とグリッド・メンバー全体でのトランザクションの一貫性が確保されます。キャッシュ・グリッド・メンバーの追加と削除はオンラインで実行できるため、アプリケ-ションへのサービスが中断されることはありません。

アプリケーションでは、データ・アクセス・パターンとパフォーマンス要件に応じて、特定のデータ・パーティションを一部のグリッド・メンバーに割り当てて局所的な最適化を行うことも、すべてのデータをすべてのグリッド・メンバーで利用できるようにして位置の透過性を確保することもできます。キャッシュ・グリッド・ソフトウェアは、すべてのグリッド・メンバー間でキャッシュ一貫性とトランザクション一貫性を管理します。

スタンドアロンのTimesTenデータベースと同様に、Oracle TimesTen Cacheは、トランザクション・レプリケーションの組込みメカニズムにより、キャッシュ・データベースの高可用性を実現します。ほとんどのエンタープライズ・アプリケーションでは、アプリケーションの停止時間は許容されません。そのため、大多数のデプロイメントでは、高可用性とロードバランシングのためにTimesTen Cacheレプリケーションが追加されます。