Oracle In-Memory Database Cacheの概要
Oracle In-Memory Database Cacheは、Oracleデータベースにリアルタイムで更新可能なキャッシングを提供するデータベース関連製品です。パフォーマンス・クリティカルな表のサブセットと断片をOracleデータベースからアプリケーション層にキャッシングすることで、アプリケーション・トランザクションの応答時間が向上します(製品のデータシート)。
企業データベースに存在するデータの大半は履歴であり、頻繁にアクセスすることはありません。しかし、このデータの中には、要求があればすぐに取り出さなくてはいけない情報があります。たとえば、優良顧客、予約注文、最近の取引、製品カタログなどです。 Oracle In-Memory Database Cacheは、このような情報をOracle TimesTen In-Memory Databaseへ自動的にコピーして管理し、インメモリ・キャッシュとOracleデータベースの間で自動的にデータを同期させることで、リアルタイムにアクセスできるようにします。

Oracle In-Memory Database Cacheは、'キャッシュ・グループ'の概念を使用します。これは、 Oracleデータベース内のすべての表または表のサブセットに対してマッピングするキャッシュ表の集合を示すものです。キャッシュ・グループは、すべての行と列、または行と列のサブセットで構成できます。 Oracleデータベース内の異なる関連表のセットをキャッシングするには、複数のキャッシュ・グループを使用できます。インメモリ・キャッシュ表は、Oracle Time Ten In-Memory Database内の通常のリレーショナル・データベース表と同様に管理されます。 そのため、Oracle In-Memory Database Cacheは、リレーショナル・データベースの十分な一般性と機能性、Oracleデータベースとのキャッシュの整合性の透過的な保守、およびインメモリ・データベースのリアルタイム・パフォーマンスをアプリケーションに提供します。 インメモリ・キャッシュ表は、永続的であり、リカバリ可能です。永続性は、トランザクション・ロギングとディスクへのデータベースのチェックポイント機能を組み合わせることで実現します。
ほとんどのキャッシング製品は、読取り専用であり、機能も制限されています。 Oracle In-Memory Database Cacheは、SQLの読取り/書込み操作を完全にサポートするため、さまざまなアプリケーションで使用できます。 Oracle In-Memory Database Cacheのキャッシュ表の更新は、パフォーマンスと整合性のトレードオフを任意に選択することで、その選択に依存した非同期、または同期のライトスルー方式で実行されます。読取り専用のキャッシュ・グループでは、Oracleデータベースの増分更新は、インメモリ・キャッシュのキャッシュ表へ、ユーザーの指定した時間隔で非同期に更新されます。
キャッシュするデータセットが事前に決定できないアプリケーションでは、データはインメモリ・キャッシュにオンデマンドでロードされます。たとえば、コールセンター・アプリケーションでは、インメモリ・キャッシュへ顧客すべての請求情報を事前にロードするのではなく、正規の担当者へ電話を転送する際に呼出し側の最新の請求書をロードできます。動的データ・ロードの補完機能として、古いデータや最近もっとも使用されていないデータをキャッシュから削除する自動データ・エージング機能があります。データ・エージング機能は、"頻繁に利用される"データをメモリ内に残しながら、アプリケーションで新しいデータのために容量を確保する機能です。
Oracle In-Memory Database Cacheは、Oracleデータベースのサーバーまたはネットワーク接続が遮断した後も継続して稼動するよう設計されています。キャッシュ表にコミットされたトランザクションは追跡され、接続が回復するとOracleデータベースへ逆伝播されます。同様に、Oracleデータベースのキャッシュ表にコミットされたトランザクションも追跡され、Oracleデータベースへの接続が再構築されると、ただちにOracle TimesTen In-Memory Databaseへ更新されます。
インメモリ・キャッシュ間のレプリケーションは高可用性のためにサポートされます。 Oracle In-Memory Database Cacheは、インメモリ・キャッシュ間でキャッシュ表がリアルタイムにレプリケートされるアクティブ-スタンバイ構成を使用することでデプロイできます。
関連リンク
|