区画化の主な利点は、クラスター・メンバーのアクティビティー中にリソースを 細かく制御できることです。 具体的には、要求の送付先として、何らかの コンピューティング・リソースへの排他的アクセスが可能な特定のアプリケーション・サーバーを指定できます。 例えば、特定のデータ・セットを処理する専用のサーバー・プロセスや データベース・サーバーなどです。 この要求は、HTTP、エンタープライズ Bean、データベース要求、または更新情報の可能性があります。 この作業を受信するエンドポイントは、引き続き高い可用性を維持できます。 したがって、WPF には作業を特定のクラスター・エンドポイントに送付する機能が用意されています。 この機能により、各エンドポイントの迅速な障害リカバリーを安全に引き続き実現しつつ、 システム全体のオーバーヘッドを削減できます。
例えば、気象状況を追跡して最新の気象を動的に表示するアプリケーションを 作成しているとします。 いくつもの台風が、毎晩のように国内を通過しています。台風ごとにデータベース情報を 区画化し、各台風用の区画を作成すれば、その区画のホストとなる アプリケーション・サーバーでは情報を排他的にロードできます。 この排他性により、変化の激しい情報を更新している台風エキスパートと、台風情報を レンダリングしているクライアントの双方が、競合を避けることができ、情報を エンド・ユーザーに提供できます。
情報の更新を必要とするクライアントは、クラスター内の 1 つの場所へと経路指定され、 そこでメモリー内コピーを更新できます。 メモリー内コピーを行うことにより、情報の利用者や台風状況を 更新するエキスパートの通信をスローダウンさせずに、的確な情報処理を 続けることができます。 台風が通過すると、メモリー内コピーはデータベースに登録され、区画は削除可能になり、 新たな気象のために領域が確保されます。
通常のクラスター・アプリケーションでは、拡張性の高い設計と インプリメンテーションを備えていない限り、上記のようなシナリオは達成できません。 例えば、Java 2 Platform Enterprise Edition (J2EE) アプリケーションの一般的なインプリメンテーションの場合、 台風情報を必要とする各クライアントや、台風状況を更新する各クライアントから、 さまざまなクラスター・メンバーに対して要求がランダムに送信できるようになります。 それぞれのクラスター・メンバー要求はトランザクションの作成をもたらします。 要求を満たすには、各読み取り処理によりデータベースから該当するデータをロードする必要があるため、 余分な時間がかかるうえ、 データベース・サーバーでのオーバーヘッドも増えます。 これは、アプリケーション・データの読み取りプログラムがロックアウトされるという点で、 クラスターで最も集中的な作業であるデータベースの更新において、とりわけ重要です。
データベースの各更新処理では、台風データへの排他的アクセスが必要になります。 選択された分離レベルによって異なりますが、更新が完了するまで、クラスター全体に 対するその他のデータ読み取りはロックアウトされます。 この場合、特定の情報についての各種データ要求が保留になるため、 データベース側では各要求を追跡し、必要に応じて調停する必要もあります。 このアクティビティーにより、データベースでの追加ロード処理が発生し、 一部のクラスター・メンバー要求が完了するのにより長い時間を要するようになるため、 そのアプリケーションに対するクラスターのスループットが減少します。
要するに、区画化の目的は、ワークロードを特定のメンバーに振り向けて、 各要求がクラスター全体にもたらすオーバーヘッドを減少させることです。 このように個々の要求のオーバーヘッドを削減すれば、すべての要求が 同一のアプリケーション情報や操作を求める場合でも、競合を避けることができます。 区画化機能には、各エンドポイント (区画) の可用性を高め、管理を容易にする機能も用意されています。 WPF に存在するクラスターのフェイルオーバーとリカバリーの一般的な利点に加え、リソースの競合を 減らす追加の機能も搭載されています。 リソースの競合を減らすと、クラスター全体のスループットが向上します。
Related concepts
区画化機能