Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

InterSystems IRIS の基礎 : 分散キャッシュによるユーザ数に応じた拡張

ここでは、分散キャッシュ用のアプリケーション・サーバを使用し、Enterprise Cache Protocol (ECP) を活用することで、InterSystems IRIS® データ・プラットフォームをユーザ数に応じて拡張する方法について説明します。

簡単な分散キャッシュ・クラスタを作成およびテストするプロセスを体験できるオンラインの実践練習については、"Creating a Distributed Cache ClusterOpens in a new tab" を参照してください。

問題 : ユーザ数に応じた拡張

ユーザがアプリケーションを介して InterSystems IRIS データベースに接続する場合には、データへのすばやく効率的なアクセスを必要とします。企業が小規模、大規模、またはその中間の規模のどの場合でも、データベースに対する同時ユーザ要求数 (ユーザ数) が多いと、データベースをホストするシステムにパフォーマンス問題が発生する場合があります。このことは多くのユーザに影響する可能性があり、多くのユーザが必要な情報を受信するために長い時間待機することになります。また、動的なビジネスではユーザ数が急激に増大し、パフォーマンスでさらに大きな影響が出る場合があります。

特に、多数のユーザが多様なクエリを実行すると、こうしたクエリのサイズがキャッシュのサイズより大きくなる可能性があります。つまり、メモリ内に格納しきれなくなり、ディスクからデータを読み込む必要が生じるわけです。この非効率なプロセスがボトルネックとパフォーマンス問題の原因となります。システム上のメモリやキャッシュのサイズを増大できますが (垂直方向の拡張)、この解決策には高いコストがかかり、柔軟性に欠け、最終的にはハードウェア機能の最大限度に制限される場合があります。複数のシステム全体にユーザ作業負荷を分散させる (水平方向の拡張) 方が、より柔軟で、効率的で、スケーラブルな解決策です。

解決策 : 分散キャッシュ

データへのユーザ・アクセスの速度と効率性を向上させるため、Intersystems IRIS では分散キャッシュを使用できます。このテクノロジでは、InterSystems IRIS がデータベース・キャッシュを複数のアプリケーション・サーバに格納できます。さらに、ユーザ数をこれらのサーバ全体に分散できるので、キャッシュ効率が向上します。これを可能にするノード間通信は、ECP (Enterprise Cache Protocol) によって有効になります。

分散キャッシュを使用すると、類似したクエリを作成するユーザがキャッシュの一部を共有できるようになります。これは、データがホストされるデータ・サーバでクラスタ化されるアプリケーション・サーバ上でホストされます。実際のデータはデータ・サーバ上に残りますが、キャッシュはアプリケーション・サーバ上で維持され、迅速なユーザ・アクセスが可能になります。データ・サーバは、企業内の各アプリケーション・サーバのキャッシュ・データが最新の状態に保たれるように対処します。

分散キャッシュ・クラスタにより、必要に応じてアプリケーション・サーバを追加または削除することで、ソリューションを簡単に拡張できます。すべてのアプリケーション・サーバは、データ・サーバへの独自の接続を自動的に維持し、接続が途切れたら回復を試みます。

ユーザは、管理ポータルを使用してアプリケーション・サーバとその関連のデータ・サーバを個別のクラスタ・インスタンス上で構成するか、InterSystems Cloud Manager (ICM) を使用してクラスタを導入して構成することができます。ICM の詳細は、"機能紹介 : InterSystems Cloud Manager" および "InterSystems Cloud Manager ガイド" を参照してください。

分散キャッシュの仕組み

InterSystems IRIS 分散キャッシュ・クラスタの導入時には、1 つのインスタンスをデータ・サーバとして、1 つ以上のインスタンスをアプリケーション・サーバとして指定します。これらのインスタンスは同じオペレーティング・システムまたはハードウェア上で実行する必要はありません。InterSystems IRIS のシステム要件に準拠する必要があるだけです。

  • データ・サーバは標準の InterSystems IRIS サーバと同じように実行され、ネームスペース内でデータベースをホストし、要求に応じて他のシステムにデータを提供します。

  • アプリケーション・サーバはデータ要求をアプリケーションから受け取ります。ユーザがアプリケーションを開くと、データ・サーバに接続されるのではなく、アプリケーション・サーバに接続されます。ユーザが違いに気付くことはありません。アプリケーション・サーバは必要なデータをデータ・サーバから取得し、ユーザに提供します。

  • アプリケーション・サーバは独自のキャッシュにデータを格納するので、次に同じデータを誰かが要求した際に、アプリケーション・サーバはデータ・サーバと再びやり取りすることなくそのデータを提供できます。

  • データ・サーバはすべてのアプリケーション・サーバを監視して、キャッシュ内のデータが最新であることを確認します。データ・サーバは、システム全体のデータ・ロックも処理します。

  • アプリケーション・サーバとデータ・サーバ間の接続が失われると、アプリケーション・サーバが自動的に再接続を試みて、必要なデータを回復しようとします。

  • 似たようなクエリを作成するユーザを同じアプリケーション・サーバに転送するようにアプリケーションを設計できます。これにより各ユーザは、自分が最も必要とするデータを含むキャッシュを共有できるようになります。例えば、医療関係の設定では、特定のクエリ・セットを実行する臨床医と、多様なクエリを実行するフロントデスク・スタッフが、同じアプリケーションと同じ基盤データを使用することが想定されます。こうしたユーザのセットは、分離したアプリケーション・サーバ上でグループ化することができます。別の例として、クラスタが複数のアプリケーションを処理する場合、各アプリケーションのユーザを独自のアプリケーション・サーバに誘導することで、キャッシュ効率を最大化できます。

分散キャッシュおよび ECP の詳細

InterSystems IRIS での分散キャッシュと ECP の使用法の詳細は、以下のリソースを参照してください。

FeedbackOpens in a new tab