Archive for 2006年6月25日
WS(Memory)とAS(HADB)のSession Replicationの違いについて
1. はじめに
前回、「Sun Java System Web Server 7 Technology Preview」の紹介で
Session Replicationの方法がWebサーバとApplicationサーバで異なることを
簡単に説明しました。
本日はSJS WebサーバのSession ReplicationとSJS Applicationサーバの
Session Replicationについてもう少し詳しく説明したいと思います。
SJS Webサーバ:メモリ
SJS Applicationサーバ:HADB(High Availability Data Base)
この違いについて、下記に、詳しく説明したいと思います。
まず、今回、下記の図のように4台構成について検討したいと思います。
「User A」はLoad Balancer経由で4台のマシンに対して接続します。
2. SJS WebサーバのSession Replicationについて
Webサーバを構成する4台をそれぞれ、WS1 , WS2 , WS3 , WS4 とします。
SJS Webサーバの Session Replication では下図に示すように、
2台間でSession Replicationを実現しています。
さらに詳しく説明すると、下記の図のように、WS1に対するsessionの
バックアップはWS2のオンメモリ上にのみ保持されています。
WS3 , WS4 はWS1のセッションのバックアップを保持していません。
以降順に、WS2のバックアップはWS3へ、WS3のバックアップはWS4へ
WS4のバックアップはWS1へというようにリング状を形成しバックアップノードが
作成されます。
次に、実際にセッションが作成された後、マシン障害が発生した場合について
考えてみたいと思います。下記の図のように、「User A」がHTTPリクエストを
送信し、sessionを作成します。この時Load Balancerが WS1に対して「User A」の
リクエストを送信したとします。すると、WS1では「User A」に対するsessionが
生成されます。そして、WS2に対してRMI経由で「User A」のsession情報がコピー
されます。
この状態で、WS1のマシンに対して何らかの障害が発生したとします。
すると、Load Balancerは当然、WS1 に対して接続ができなくなりますので、
別の利用可能なWebサーバへ接続を試みます。この時、Load Balancerは
「User A」のセッション情報がどのWebサーバに存在するかはしりません。
そこで、任意のWebサーバに接続を割り振ります。下記の例ではWS4に対して
リクエストが割り振られています。ここで割り振られた、WS4 は「User A」の
sessionを保持していません。そこで「User A」に対するsessionを検索します。
次に、WS4 は WS2 が「User A」に対するsessionをバックアップとして
保持している事を見つけ出し、下記の図のように「User A」のsessionの情報を
取得し、WS4 がレスポンスを返します。
ここでさらに、下記の図のようにWS1 に加えて WS2 も同時にシステム障害が
発生した場合を想定します。この場合、「User A」のセッション情報は、WS1 , WS2
しか保持していませんでしたので、「User A」のセッション情報は存在しなくなって
います。このような状況が発生してしまった場合、「User A」は新たにsessionを
再度作成しなくてはならず、既存の情報は全て無くなってしまいます。
このように、SJS WebサーバのSession Replicationはメモリ上にのみsession情報を
保持し、かつセッション情報の複製を2台間でしか保持していません。
そこで、セッションを保持する2台同時に障害が発生した場合は、再度sessionを
再作成しなければなりません。このことからSJS WebサーバのSession Replicationを
Light Weight(軽量な) Session Replicationと呼んでいます。
3. SJS ApplicationサーバのSession Replication(HADB)について
High Availability Session Store(HADB)の概要を御参照下さい。
※ HADBは99.999% のサービスおよびデータの可用性をサポートするように設計されています
Webサーバ、Applicationサーバの選択においては、御使用の目的・用途、また
価格に応じて適切な製品を御検討頂ければと思います。