この記事はPankaj ChandiramaniおよびBill LeeによるIntroducing Oracle True Cache : In-memory, consistent, and automatically managed SQL cache (Oracle Database 23ai)を日本語に翻訳したものです。

2023年9月19日


デジタル環境が進化し続ける中で、リアルタイムの応答を提供することが不可欠となっています。レイテンシーが新たな障害として出現し、スピードに対する顧客の期待は急上昇しています。組織にとって、増大するユーザーベースの急増する需要に応えるために、アプリケーション・アーキテクチャを適応させることが極めて重要です。

データ量が指数関数的に増加し、ビジネス・ロジックがより複雑になるにつれて、優れたユーザー・エクスペリエンスを提供するには、最適なサービス・パフォーマンスと応答時間を確保することは極めて重要です。優れたパフォーマンスを追求する上で、ほとんどのビジネス・シナリオが書き込みよりも読み取りの割合が高いことを考慮すると、キャッシュが一般的なソリューションとして浮上してきます。キャッシュは、頻繁にアクセスされるデータを一時的な場所/キャッシュに保存することで、データベースへの依存を効果的に軽減します。その結果、データ検索を大幅に高速化、より効率化します。

会社が拡大し、リスクが高まるにつれて、キャッシュは単なる利便性から絶対的な必要性へと変化していきます。小規模ビジネスでは十分だったものが、競争力を追求する大規模企業にとっては不可欠なものになります。失敗は許されません。

このブログでは、Oracle Database 23aiで True Cache と呼ばれる Oracle の画期的なキャッシュ ソリューションについて詳しく説明します。True Cacheを使用して、最新のビジネス アプリケーションが直面する課題に取り組むために設計された最先端のキャッシュ ソリューションを提供します。このブログを通じて、Oracle True Cache の特長と機能、およびOrace True Cacheを使用してパフォーマンスを最適化し、データの陳腐化を緩和し、キャッシュされたデータを効率的に管理できるようにする方法について説明します。さらに、アプリケーションでの True Cache の使用方法、ユースケース、およびさまざまなビジネス シナリオにおける True Cache の利点についても詳しく説明します。お客様のアプリケーションに変革をもたらす可能性を探る True Cache の世界への旅に出かけましょう。

True Cacheとは?

最新のアプリケーションでは、多くの場合、接続数とキャッシュできるデータ量の両方に関して、大規模な拡張性が必要になります。

一般的なアプローチは、データベースの前にキャッシュを配置することです。これらのキャッシュは、アプリケーションが最新のデータを参照する必要がないことが多いという事実に基づいています。たとえば、誰かがフライト予約システムを閲覧すると、システムは 1 秒前のフライト データを表示することがあります。誰かがフライトを予約すると、システムは最新のデータを表示します。

True Cache
True Cache

Oracle True Cacheは、バッファ・キャッシュのデータのみを使用して問合せに対応します。Oracle Active Data Guardと同様に、True Cacheはプライマリ・データベースの完全に機能する読取り専用レプリケーションですが、ほとんどがディスクレスである点が異なります。

大まかには、次のように動作します:

  • アプリケーションは、Oracle JDBCドライバを介して問合せを手動または半自動でTrue Cacheに送信します。
  • True Cacheインスタンスは、処理するデータベース・アプリケーション・サービスに対してキャッシュするデータを使用して、問合せを処理します。
  • キャッシュ・ミスが発生すると、True Cacheインスタンスはプライマリ・データベース・インスタンスからブロックをフェッチします。
  • True Cacheインスタンスが最初に起動すると、キャッシュ・ミス時のブロックのフェッチに加えて、周囲のブロックも大きいチャンクでフェッチしてウォームアップします。
  • ブロックはキャッシュされると、通常は1秒未満のラグを使用して、プライマリ・データベースからのREDO Applyによって自動的に更新されます。これは、Oracle Data Guard構成でのリアルタイムREDO適用の動作と似ています。プライマリ・データベースのREDOブロックは、プライマリ・データベース・インスタンスのLGWRプロセスによって、ASYNCモードでTrue CacheスタンバイREDOログ・ファイルに継続的に送信されます。
  • True Cacheへの問合せは、REDO適用ラグとして最新のコミット済データのみを返します。
  • True Cacheインスタンスに対する各問合せは、常に一貫性のあるデータを返します。

アプリケーションでのTrue Cacheの使用

アプリケーションは、次のいずれかの方法を使用して、True Cacheまたはプライマリ・データベース・インスタンスのデータを問い合せるかどうかを決定します:

  • True Cache 構成のさまざまなインスタンスへの複数の物理接続を維持し、データの問合せまたは更新の前に接続を切り替えます。
  • プライマリ・データベース・インスタンスで実行されているデータベース・アプリケーション・サービスへの1つの論理接続のみを保持し、対応するプライマリ・インスタンスおよびTrue Cacheインスタンスへの基礎となる物理接続をドライバが処理できるようにします。この方法は、JDBC Thinドライバを使用してのみ実行できます。開発者は、アプリケーション・コードの特定のセクションに対して論理接続を手動で読取り専用としてマークできます。True Cacheインスタンスがデータベース・アプリケーション・サービス向けに構成されている場合、Oracle JDBCドライバは、アプリケーション・コードの読取り専用セクションからTrue Cacheインスタンスの1つに問合せを自動的に送信します。
True Cache Architecture
True Cache Architecture

True Cacheの利点

Oracle True Cacheには次の利点があります:

アプリケーションのパフォーマンス向上

Oracle True Cacheは、アプリケーションを書き換えることなくスケーラビリティとアプリケーションの応答時間を向上させます。また、クエリのオフロードとプライマリ・データベースへのリクエスト数の削減を実現します。

メンテナンスの自動化

Oracle True Cacheは、複数インスタンスのキャッシュ・データのメンテナンスを自動化し、手作業を減らし、生産性を向上させます。

開発の簡素化

開発者は、プライマリ・データベース・インスタンスへの単一論理接続を維持することで、手動でインスタンス名を指定することなくプライマリ・インスタンスとTrue Cacheインスタンス間をシームレスに移行できるため、アプリケーションの透明性と効率性が向上します。

SLAの改善

Oracle True Cacheは、Thinクライアントとデータベースを統合することでアプリケーション・アーキテクチャを合理化し、追加の中間層製品の必要性を排除します。この相乗効果により、サービス・レベル・アグリーメント(SLA)が向上し、潜在的な不具合が減少し、よりスムーズで効率的なユーザー エクスペリエンスが保証されます。

コスト削減を実現

Oracle True Cache を使用すると、キャッシュをコスト効率の高い汎用ハードウェアにオフロードし、データベースへの負荷を軽減して、より高価なハードウェアに関連する潜在的な費用を軽減することでコスト削減を実現します。

 

ユースケース

ビジネスやアプリケーションが特定の要件を追求しているさまざまな分野にわたるOracle True Cacheのユニークな適用性を発見してください。 :

ユーザーのセッション情報: Oracle True Cacheは、ユーザー・プロファイルや閲覧履歴などの一時的なセッション・データを格納し、1秒未満の応答時間を提供し、リアルタイムのレコメンデーション・エンジンのパフォーマンスを最適化します。

Eコマース・アプリケーション: 顧客は、バックエンドのデータベースではなくOracle True Cacheインスタンスにアクセスして、オンライン製品カタログのデータを取得します。このプロセスにより、ブラック・フライデー、サイバー・マンデー、テレビのプライム・タイム・セールなど、販売期間のピーク中に応答時間が短縮され、カスタマー・エクスペリエンスが向上します。

オンライン・ゲーム: Oracle True Cacheは、リアルタイムのプレイヤーデータを保存し、ユーザー向けのリーダーボードやランキングなどの機能をサポートすることで、レイテンシを短縮し、没入感のあるゲーム体験を向上させます。

ユーザー認証: Oracle True Cacheは、一日何百万も更新されるユーザー・プロファイルを処理し、アプリケーション・ユーザーをリアルタイムで検証します。また、複数のデータ・モデルをサポートして、様々なタイプの要素をネイティブに格納することで、複雑さとコストが削減されます。

リアルタイム分析: Oracle True Cacheを使用してデータをキャッシュし、データベースのI/Oをオフロードして、運用負荷を低減し、コストを削減し、データベースとアプリケーションの両方のパフォーマンスを向上させることができます。

エッジ・コンピューティング: Oracle True Cacheは、ユーザーまたはデバイスに近い地域にデプロイできるため、データベースからのデータの収集、保存、取得にかかる時間を短縮できます。

データ主権: Oracle True Cacheは、エンド・ユーザーまたはソブリン・リージョンの近くにデプロイされたインスタンスに読み取りをオフロードし、分析の応答時間を短縮し、データ主権を維持します。

要約すると、Oracle True Cacheは、最新のデータ環境に対応する包括的なソリューションです。True Cache は、索引、パラレル・クエリー、圧縮などの高度な機能、リレーショナル、オブジェクト、ドキュメント(JSON/XML)、キーバリュー、Text、Graph、Spatialなどのさまざまなデータ型のサポート、さまざまなデータ形式 (行/列) のサポートを含めてOracle Databaseの潜在能力をフルに活用します。 個別のキャッシュ層や無効化を管理する複雑さが解消されます。Oracle True Cacheは、Eコマースからゲーム、金融業務からIoT管理まで、レイテンシの最適化、エクスペリエンスのパーソナライズ、運用の合理化などさまざまなユースケースにおいて、パフォーマンスの向上を実現する能力を備えており、データの高速化と配信を再構築し、今日のデジタル領域で増え続ける需要に対応できるようにします。

さらに詳細が知りたい場合はこちら : https://www.oracle.com/database/truecache/