InfoQ

News

ロードバランシング、ワークスティーリング、およびデータパーティショニングをサポートするGridGain 2.0

作者 Srini Penchikala, 翻訳者 佐野 徹郎 投稿日 2008年3月20日 午前12時27分

コミュニティ
Java
トピック
グリッドコンピューティング
タグ
GridGain,
グリッドコンピューティング,
ロードバランシング

GridGain(サイト・英語)の最新バージョンは、Javaベースでオープンソースのグリッドコンピューティングフレームワークで、ロードバランシングとデータパーティショニングの機能をサポートする。GridGain Systems社(サイト・英語)は先ごろ、グリッド内の負荷の高いノードで実行しているスケジュールされたジョブを、負荷の低いノードで実行するために「盗む」、「ワークスティーリング」機能を含む、フレームワークのバージョン2.0(source)をリリースした。

ロードバランシング機能は、ラウンドロビン(デフォルト)、重み付きランダム、アダプティブ、およびアフィニティ(スティッキー)ロードバランシングなどの、いくつかの異なるポリシーをサポートする。Oracle Coherence(source)製品のための、特別なアフィニティロードバランシングもある。

ワークスティーリングSPIは、グリッドのノード間でスケジュールされたジョブを(グリッド内の負荷の高いノードから、負荷の低いノードに、割り当て)、動的にロードバランシングすることで動作する。この機能は、グリッド内で実行されるジョブのフェイルオーバーだけでなく、ジョブのスケジューリングもサポートする。グリッドのジョブを盗むという設計のアイデアは、Java SE 7(サイト・英語)のために計画された、Doug Lea氏によるJava Fork/Joinフレームワーク(PDF・英語)に基づいている。この機能は、高速なノードがジョブを盗むことで、低速なノードにジョブが滞留するのを避けるために、利用することができる。フェイルオーバーSPIは、ジョブを盗むために最初のリクエストを送ったノードに切り替わったことを確認する。

巨大なデータセットを処理するときに、注意しなければならないことは、グリッド内のノード間で、ネットワーク越しに渡されるデータの量だ。GridGainは、巨大なデータセットの処理を最適化するために、以下の機能を備えている。

  • データパーティショニングとアフィニティロードバランシング:この機能(source)は、グリッドノード全体のデータをパーティショニングして、データのあるノードに正確にグリッドジョブを送り、同じ場所でデータを計算することで動作する。
  • ノード分割:グリッドノードは、それぞれに指定されたデータセット上で動作する、別々のグループに分割される(source)。これは、グリッドにジョブを送るだけの、グリッド内のいくつかのノード(マスター)と、これらのジョブを実行するだけの、その他のノードのグループ(ワーカー)、というシナリオにおいて役立つ。
  • 中間チェックポイント:時間の掛かるジョブを扱うとき、それはしばしば、中間のジョブ状態を定期的の保存するのに役立つ。チェックポイントSPI(source)がこの機能を提供するので、もしジョブが別のノードにフェイルオーバーしても、初めからジョブを再実行しなくてもよい。

GridGain 2.0のリリースに含まれる、その他の新しい機能(source)

  • モニタリング:開発者は、GridNodeMetrics(source)インタフェースを利用しているすべてのグリッドノードに関する、実行時のメトリクスを取得することができる。これらのメトリクスには、グリッド内のアクティブなジョブ、休止中のジョブ、および廃棄されたジョブに関する詳細だけでなく、CPUおよびヒープメモリの情報も含まれる。
  •  リソースインジェクション:GridGainは現在、@GridUserResource(source)アノテーションを利用することで、タスクやジョブへの、どんなリソースのインジェクションでもサポートする。@GridSpringApplicationContextResource(source)アノテーションを利用することで、Springのアプリケーションコンテキスト(source)にインジェクションすることもできる。
  • グリッドジョブコンテキスト:この機能は、(GridJobContext(source)インタフェースを利用して)特定のジョブや(GridTaskSession(source)インタフェースを利用して)タスクに参加するすべてのジョブの属性にアタッチできるようにする。

GridGainフレームワークは、JUnit、AspectJ、Spring、JBossおよびJGroups、GlassFish、WebLogic、WebSphere、Coherence、Mule、JXInsight、およびGigaSpacesなどの、いくつかのオープンソースおよび商用のフレームワークやアプリケーションサーバを統合(source)する。

すべてのテストの実行を全面的に高速化するために、グリッド全体でJUnit4テストやテストスイートを実行するのに利用できる、分散JUnit4(source)のGridGainタスクもある。分散JUnitテストは、@GridifyTest(サイト・英語)アノテーションを利用して設定される。これは典型的に、いくつかのユニットテストと統合機能テストを実行するのに時間の掛かる、アプリケーションの夜間ビルドの一部として、アプリケーションのテストスイートがすべて実行される、統合された開発サーバの環境で役立つ。

GradGainは、GridTaskSessionAttributeListener(source)インタフェースを利用して設定できる、非同期通知をサポートする。それはまた、タスクを管理するためのチェックポイント機能を持つ、GridTaskSession(source)インタフェースを利用するジョブ間の依存性も扱う。

原文はこちらです:http://www.infoq.com/news/2008/03/gridgain-2.0

ブックマーク
digg+,
reddit+,
del.icio.us+,
dzone+,
Hatena

No comments

返信

ジャンル別一覧

BlazeDSとAMFでWebとデスクトップのアプリケーションを構築する

現在のRIAアーキテクチャにおいて、クライアント/サーバーの通信は重要な位置を占めています。本稿では、James WardとShashank TiwariがアドビによるオープンソースのBlazeDSメッセージングサーバーの世界へ飛び込みます。

業務ソフトに手を加えずに暗号化を実現する~秘文の挑戦~

hibun

ウィルス対策ソフトや情報漏えい防止用のソフトは、いわば影の存在です。ユーザの操作性やGUIを工夫する以上に、いかに目立たない存在となるかにその技術を注ぎ込んでいます。ここでは日立ソフトが開発した「秘文」の事例を紹介します。

Google Chartとgchartrbの紹介

Google Chartは、チャートを作成するためのWebサービスです。本稿では、Google Chartのインターフェースと、Rubyコードから簡単にチャートを生成することができるgchartrbライブラリの説明をします。

SOAを超えて: 動的な業務アプリケーションのための新しいエンタープライズアーキテクチャフレームワーク

全二回からなるこの記事では、ダイナミックビジネスアプリケーション(Dynamic Business Applications:DBAs)の開発についての全体的な眺望を、アーキテクチャと方法論の観点から見ていくことになります。我々のゴールは、「ビジネスの変化や、その他に必要とされる変更に対して、いかにして容易に適応できるアプリケーションを構築していくか」を導きだすことです。

ESB接続形態のオルタナティブ

本稿では、Adrien Louis氏がESBベースのSOAに対する2つの接続形態についての賛否について説明しています。その2つとは、会社での単一のESB対「部門毎」に相互接続するESBによるシステムです。

AjaxプログラマのためのJavaOne2008 -GrizzlyでComet!-

誕生から2年を経てCometは「何が出来るのか」という議論から、「いかに実現するか」という議論に関心が移ってきたように見えます。そこで本稿では同じくJavaOneで数多く取り上げられたNetBeans 6.1とGlassFish v3を使いながら、サンプルを交えてCometを解説していく事にします。

SharePoint Webサービスを始めましょう

この記事では、WSS3とMOSS 2007に難しい設定など一切せず、すぐに利用可能なWebサービスと、Javaと.NETからそのWebサービスを消費する方法に目を向けます。

レトロスペクティブのプライムディレクティブに対する問い

この記事の始まりは、知的で思慮深い人たちの魅力的なグループが食事会を終えて話をしているところです。話はレトロスペクティブ(振り返り)プロセスの要であるプライムディレクティブ(最初の指示)に及んでいます。