XTP(大量トランザクション処理)
WXSが適する用途
インメモリ・データグリッド製品であるWXSが役立つシーンとしては、大量高速トランザクション処理のほか、バックエンド・サーバーのボトルネックを解消することによるサーバー・コストの削減、といったものがあります。以下では、典型的な用途を示します。
1. 大量高速トランザクション処理
典型的なXTPの用途です。1日あたり50億リクエストのWebシステムにWXSを適用することで、性能を10倍に高めた事例などがあります。以下のようなケースで有効です。
- 大勢のユーザーやトランザクションによる更新処理
- シングル・プロセスに保管するのが現実的でない大量データ処理
- 短いレスポンスでのリアルタイム・データ分析や、大きなデータ(GB単位)の一貫性を持った更新
- 大量データの集計(Map&Reduceのようにデータグリッド側で並列分散処理が可能な場合)
- 複数のデータセンター利用時の24時間×7日(1週間)の高可用性
2. バックエンド・システムの負荷軽減
キャッシュやグリッドを、性能向上だけでなくバックエンド・システムの負荷軽減を目的として利用できます。リテール・バンクのユーザー事例として、トランザクションの範囲を工夫することでバックエンドのホストの負荷を95%削減した例が報告されています。以下のケースに対して有効です。
- バックエンド・システムのリソースが性能やスケーラビリティのボトルネックになっている
- アプリケーションが、同じデータに繰り返しアクセスしている
- 同じデータが同時に複数のアプリケーションからアクセスされている
- バックエンド・システムの性能を上げるとコストがかかり過ぎる
- トランザクション量が、今後近いうちに2倍以上に増える
3. 高可用性とスケーラブル・キャッシュを低コストで手配する
既存のWebシステムの使い勝手や品質を向上させる目的にも利用できます。例えば、以下のような用途に利用できます。
- HTTPセッション・データのレプリケーションの信頼性を高める
- アプリケーション・サーバーの動的キャッシュを持つ
- ADO.NET RESTインターフェースでデータ・グリッドにアクセスする
特に、クラウド環境では、可用性が高く高速なストレージのニーズがあります。WXSアーキテクチャーにより、クライアントからは透過的にサーバー/ストレージ資源のフェール・オーバーが行われます。以下の要件において有効です。
- JVM障害/停止に対して迅速なフェール・オーバーが必要なアプリケーション
- データ量の増加などストレージ量を柔軟に変更する必要があるアプリケーション
- 地域に分散したデータセンター間でアクティブ-アクティブ(Active-Active)構成の災害対策が必要な場合
インメモリ・データグリッドのまとめ
今回は、エンタープライズWeb開発におけるインメモリ・データグリッドと例として、WXSを紹介しました。WXSには試用版を用意しているので、インメモリ・データグリッドがどのようなものかを簡単に体験できます。ぜひ、お試しください。
このほか、記事では紹介しませんでしたが、XTPを支えるミドルウエアとして、リアルタイム処理に向いたJava実行環境の製品「WebSphere Real TimeJava」や、Javaでバッチ処理を実行する基盤製品「WebSphere Extended Deployment Compute Grid」などがあります。
最終回となる次回は、クラウド/仮想化技術について紹介します。