JP2010541100A - 計算グリッド上に高可用性データ並列操作を実装する方法 - Google Patents

計算グリッド上に高可用性データ並列操作を実装する方法 Download PDF

Info

Publication number
JP2010541100A
JP2010541100A JP2010528002A JP2010528002A JP2010541100A JP 2010541100 A JP2010541100 A JP 2010541100A JP 2010528002 A JP2010528002 A JP 2010528002A JP 2010528002 A JP2010528002 A JP 2010528002A JP 2010541100 A JP2010541100 A JP 2010541100A
Authority
JP
Japan
Prior art keywords
node
data
data parallel
partition
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2010528002A
Other languages
English (en)
Inventor
ベイン、ウィリアム、エル.
Original Assignee
スケールアウト ソフトウェア インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by スケールアウト ソフトウェア インコーポレイテッド filed Critical スケールアウト ソフトウェア インコーポレイテッド
Publication of JP2010541100A publication Critical patent/JP2010541100A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake

Abstract

計算グリッド上に高可用性データ並列操作を実装するための新しい方法を提供する。この新しい方法は、サーバが故障した後、またはグリッドがネットワークの部分的故障を経験した後に高可用性を提供する。本発明は、高可用性分散キャッシュ内の区画に記憶された、選択されたオブジェクトに対してデータ並列操作のメソッドを呼び出す。それにより、本発明は、サーバ故障、またはネットワーク故障の発生後でさえ、データ並列操作の中のメソッド呼出しの進捗を確実に追跡する手段として、分散キャッシュにより実装された高可用性データ区画を使用することによる利益を得る。キャッシュの区画を追跡の基礎として使用することにより、本発明の方法は、メソッド呼出しを再び開始し、それにより、データ並列操作の完了を保証することができるようになる。本発明はまた、キャッシュ内の完了オブジェクトを使用して、データ並列操作の完了が高可用性の方法で検出され、報告されるのを保証する。

Description

本出願は、2007年10月3日に出願された米国仮出願第60/997,612号に対し優先権を主張する。
「計算グリッド」(「計算クラスタ」としても知られる)は、コンピュータネットワークにより相互接続された1組のコンピュータから成り、しばしば「並列アプリケーション」と呼ばれる単一のアプリケーションプログラムを実行するために使用される。各コンピュータを一般に計算「ノード」と呼ぶ。アプリケーションプログラムはさらに計算「タスク」に分割される。各計算タスクは異なるノード上で実行されるコンピュータプログラムの一部である。これらのタスクは、一般に別個のデータを同時に操作し、タスクは、このアプリケーションにより実行される計算全体の一部として互いに通信することもある。
並列アプリケーションの1つの例が、天気シミュレーションモデルであり、このモデルでは、計算グリッドの各ノードが、1日のうちの所与のシミュレーション時刻における世界の別個の地域の天気の影響をモデルするタスクを実行する。これらのタスクを総括したものが、模擬時刻における総合地域の天気システム全体をモデルする。各タスクの一部として、ノードが他のノードと通信して、隣接地域からの天気情報を得る、または引き渡すこともある。並列アプリケーションは、一連の時間間隔全体の天気をモデルする。
並列アプリケーションを構成するタスクを開始する一般的な方法が、1つのノードがすべてのノードに別個のデータ(時には「オブジェクト」と呼ばれることもある)に対し単一の計算機能(時には「メソッド」と呼ばれることもある)を実行するよう指示する「データ並列操作」を実行することである。データ並列操作は、計算グリッドの大部分、またはすべてのノード内の選択されたデータに対する1組の「メソッド呼出し」から成る。性能を最大にするためには、計算ノード上で並列に(すなわち、同時に)これらのメソッド呼出しを実行する。すべてのノードがこの機能を実行し、新しいデータを作成する、または自身の特定の1組のデータを更新する。データ並列操作の実装の一部として、すべてのノードがこのメソッドの実行を完了したときに開始ノードに通知する。これにより、開始ノードが別のデータ並列操作を開始することができる。データ並列操作の一例を図2に示す。
たとえば、上記の天気シミュレーションモデルを表すオブジェクトを1組の領域「r」に対する地域オブジェクトのリスト「region[r]」として表すことができ、その計算メソッドを関数「model_weather()」として表すことができる。この関数が地域オブジェクトを操作する。何らかの手段(分散キャッシュを使用するなど)により、この地域オブジェクトを計算グリッドのノードに分配したと仮定する。データ並列操作では、1つのノードがすべてのノードに対し、割り当てられた地域に対してmodel_weather()メソッドを実行するよう指示する。
並列アプリケーションの別の例として、計算グリッドの各ノードが別個の1組の財務資産を分析し、資産ごとの結果を収集するタスクを実行する財務分析アプリケーションがある。たとえば、この分析では、現在の市況に基づいて各資産を分析して、その資産の価値を判断することができる。次に各分析結果を結合して、すべての資産を含む最終報告書にする。
財務分析の例では、上記の財務資産を表すオブジェクトを、1組の顧客「c」に対する資産オブジェクトのリスト「portfolio[c]」として表すことができ、その計算メソッドを関数「analyze_portfolio()」として表すことができる。この関数が資産オブジェクトを操作する。何らかの手段(分散キャッシュを使用するなど)により、資産オブジェクトを計算グリッドのノードに分配したと仮定する。データ並列操作では、1つのノードがすべてのノードに対し、その近傍に記憶された資産オブジェクトに対してanalyze_portfolio()メソッドを実行するよう指示する。これにより、計算グリッドは各ノードの資産オブジェクトの一部を並列に分析して、この操作にかかる時間を最小にする。
データ並列操作は、グリッド内のノードが繰り返し管理者ノードからの独立した作業タスクを求め、受け取る「管理並列操作」(「管理者/ワーカーパラダイム」とも呼ばれる)と呼ばれる、タスクを開始するための別の方法と区別される。両方法とも、様々なアプリケーションでの用途があるが、本発明の対象はデータ並列アプリケーションである。
データ並列操作の実装には、以下の3つのステップを順に実行する必要がある。
1.複数のデータセットに対して、指定されたメソッドを呼び出すために、1つのノードがすべてのノード上のタスクを開始する。
2.すべてのノードが、指定されたメソッドを別個のデータセットに対して実行することにより、そのタスクを実行する。
3.このタスクがすべての指定されたデータセットで完了したことを、すべてのノードが発信元ノード(故障が発生した場合には、その後継ノード)に伝達し、結果を報告し、その結果を統合する。
数10年にわたり、数多くの並列計算システムがデータ並列操作を実装してきた。しかし、従来の実装では、一般にデータ並列操作の実行中に計算ノード、およびノード間の通信操作が故障しないと仮定していた。故障が発生すれば、データ並列操作を再起動するようになっていた。不都合なことに、財務サービスなどのスピードが重視される多くのアプリケーションでは、データ並列操作を再実行するのに必要な遅延を許容することができない。
サーバ、または通信ネットワークのサーバ部分の故障に耐えるデータ並列操作の実装を「高可用性」実装と言う。本発明は、ノード、またはネットワークの一部分(ネットワーク・インターフェース・カードなど)が、前述の3つのステップのうち1つのステップの間に故障した場合でも、データ並列操作をうまく完了することができるように、高可用性データ並列操作を実行するための方法を説明する。
データ並列操作を実装するために、この数10年間、数多くの計算グリッド(並列計算システムとしても知られる)が作られてきた。2つの例に、Thinking Machines社のConnection Machine、およびIntel Paragon Parallel Supercomputerが含まれる。つい最近、標準のTCP/IP通信ネットワークを使用して、ソフトウェアの形でデータ並列操作を実装するサーバコンピュータのクラスタとして計算グリッドが実装された。しかし、これらの実装のどれも、サーバの故障、または部分的なネットワーク故障後にデータ並列操作を高可用性にするという問題を解決していない。
信頼できる分散計算システムにおいて、1組の協力するコンピュータ用のメンバシップを作成し、サーバ故障後にそのメンバシップを高可用性にするという問題が取り組まれてきた。これらのシステムは、すべての協力するコンピュータ上で実行されるソフトウェア層を提供する。この層は、コンピュータが共通のメンバシップに参加すること、およびメンバシップから退くことを可能にする。これらのシステムは、一種の信頼できるマルチキャストを実装しているので、すべてのコンピュータが確実にマルチキャストメッセージを受け取ることができる。1台のコンピュータが故障すれば、このソフトウェアは新しいメンバシップを形成し、残存するメンバすべてに対して新しいメンバシップを確認する。メンバのコンピュータは、1つまたは複数のコンピュータにメッセージを送ることができ、一般に各メンバシップのどのノードがそのメッセージを受け取ったかを判断することができる。これらの分散計算システムの2つの例が、IsisおよびEnsembleである。
信頼できるマルチキャストを使用し、かつ故障が発生した場合にはメンバシップ変更を検出することにより、信頼できる分散計算システムにおいて高可用性な方法でデータ並列操作のステップ1を実装するためのメソッドが作り出された。図2の黒い矢印が、すべてのノードに対するメソッド呼出しを分配するために、信頼できるマルチキャストを使用していることを図示している。しかし、これらのシステムには、データ並列操作の3つのステップすべてが実装されたわけではなかった。特に、これらのシステムは、このメソッドをすべてのデータセットで実行し、かつ発信元ノード(または、故障が発生した場合には、その後継ノード)に完了を通知することを保証するための手段を提供していない。
信頼できる分散計算システムは、主にコンピュータのメンバシップに焦点を当てているので、データ並列操作を完了する目的のために、各コンピュータに割り当てられたデータを追跡する手段を提供していない。コンピュータの故障後に、新しいメンバシップを知ることは、そのメソッドがどのデータセットを完了したか、およびどのデータセットが依然としてノード上でそのメソッドを実行される必要があるかを、残存するノードに伝えることにはならない。また、新しいメンバシップを知ることは、故障したノードが実行することになっていたタスクを残存するノードが再分配することができるように、ノード上のデータセットの配置を管理する手段を提供することにもならない。
ScaleOut Software、 Inc.およびTangosol社の市販のソフトウェア製品などの分散キャッシュが、データオブジェクトを記憶し、それらを計算グリッド内のすべてのノードが利用できるようにするように作られた(「サーバファーム」としても知られる)。一般に、ノード故障、またはネットワークの一部分の故障後に、すべてのデータオブジェクトを高可用性に保つよう、分散キャッシュを構成することができる。これは、必要があれば、オブジェクトを他のノードに複製し、その複製されたコピーを使用して、ノード故障から回復することにより達成される。さらに、データオブジェクトがすべてのサーバにわたり均等に広がるように、計算グリッド内のノードにデータオブジェクトを自動的に分配するように分散キャッシュを構成することができる。これを行う一般的な方法が、データオブジェクトを「区画(partition)」と呼ばれるオブジェクトのグループに分け、ノードに区画を均等に分配することである。区画の数がノードの数よりもはるかに多くなる場合もある(一般に、計算グリッドのノードに負荷を分散させるために区画を使用することは、従来技術で十分に確立されている)。区画化された分散データキャッシュの例を図3に示す。ノードが故障した場合、そのキャッシュの区画が図4に示すように残存するノードに再分配され、そのオブジェクトはその元の区画に割り当てられたままである。区画の数は変わらないままである。
分散計算システムによる信頼できるマルチキャストと組み合わされ、分散キャッシュは、前述のデータ並列操作の中のステップ1、およびステップ2の一部を完了するための優れた基礎となる。まず、このメソッドにより操作されるデータセットを、データオブジェクトとして分散キャッシュに記憶させる。キャッシュは、このデータオブジェクトをキャッシュの区画間に均等に分配することにより、グリッドのノードに均等に分配する。ステップ1で、メソッド呼出しがすべてのノードに確実にマルチキャストされると、各ノードは分散キャッシュがローカルノード上に置いたデータオブジェクトに対してメソッドを呼び出すことができる(分散キャッシュがこれを行うための手段を提供すると仮定する)。データオブジェクトは高可用性なので、ノードの故障、または部分的なネットワーク故障によりアクセスが不可能になった場合にも、データセットは失われない。また、故障後、分散キャッシュは、必要に応じて残存するノードにすべてのオブジェクトを再分配する。
しかしながら、従来技術のこの組み合わせは、データ並列操作のステップ2およびステップ3を完全に実装していないので、データ並列操作全体を高可用性にしない。故障が発生した後、従来技術では、指定されたデータオブジェクトすべてに対してメソッドがうまく呼び出されたこと、およびデータ並列操作の完了が発信元ノード(または、故障が発生した後の、その後継ノード)に伝達されることを保証するという問題を解決しない。
本発明は、メソッド呼出しの進捗、および完了を追跡することにより、複数のノード(コンピュータ)から成る計算グリッドに高可用性データ並列操作を実装する方法を開示する。
本発明は、高可用性分散キャッシュシステムを利用する。このシステムは、前記複数のノードに少なくとも2つの高可用性区画を記憶し、前記複数のノードの中の各区画内に少なくとも1つのデータオブジェクトを含み、故障したノードの前記区画を残存するノードに分配する。本発明は、計算グリッド上に高可用性データ並列操作を実装するための基礎として、ノードの代わりに、分散キャッシュ内の高可用性区画を使用する。本発明の第1ステップは、分散キャッシュのすべての区画内の選択されたオブジェクトに対して、1組のメソッド呼出しから成るデータ並列操作を実行し、その結果をそのキャッシュ内に記憶された別の高可用性オブジェクトに統合することである。次のステップは、各区画内の選択されたデータオブジェクトすべてに対するメソッド呼出しの完了に関して、開始ノード、または開始ノードが故障した場合にはその後継ノードに各区画でのデータ並列操作の完了を報告することである。どの区画が、構成要素のデータオブジェクトすべてについてのその区画の結果を開始ノード、またはその後継ノードに報告したかを判断することにより、開始ノード、またはその後継ノード上のメソッドがデータ並列操作の完了を追跡する。ノードが故障した後、データ並列操作が最終的に完了するように、このメソッドは、故障したノードのどの区画が結果を報告しなかったかを判断し、前記区画に対するデータ並列操作のためのメソッド呼出しを残存するノード上で再び開始する。
4つのノードを含む計算グリッドの例である。 4つのノードを含む計算グリッド上で実行されるデータ並列操作を示す図である。 計算グリッドに広がる分散区画化データキャッシュを示す図である(従来技術)。 ノード故障後の分散区画化データキャッシュを示す図である。 区画化分散キャッシュ内のすべての区画に対するデータ並列操作の呼出しを示す図である。 本発明における高可用性データ並列操作実装のための一連のステップを示す図である。 各ノード上でデータ並列操作を実行する方法を示す図である。
図1は、4つのノードを有する計算グリッドの一般的な従来技術の例を示す。図2は、4つのノードを有する計算グリッド上で実行されるデータ並列操作の従来技術の例を示す。この操作は、4つのデータセットにメソッドMを並列に実行する。この操作はノードのうちどれによっても起動することができることに留意されたい。
図3は、計算グリッドに広がる分散区画化データキャッシュを示す(従来技術)。このデータキャッシュにより、データオブジェクト(図の円)がすべてのノードで大域的にアクセス可能になり、サーバの故障、またはネットワークの一部の故障後に、これらのオブジェクトが高可用性に保たれる。キャッシュは、1組の区画として構成され、各区画は、キャッシュの中にデータオブジェクトのサブセットを保持する。次に、区画がノード全体に均等に分配され、ノード故障、または部分的ネットワーク故障後に、必要に応じて再分配される。これを行う能力は、当業者に知られている。図に示すように、ノードよりも多くの区画があることに留意されたい。
図4は、ノード故障後の分散区画化データキャッシュを示す。残存するノードで区画が再分配されたことに留意されたい。ノードが故障する前の区画の総数は変わらないままであり、すべてのデータオブジェクトがその元の区画に割り当てられたままである。
図5は、本発明のステップ1の、区画化分散データキャッシュ内のすべての区画に対するデータ並列操作の呼出しを示す。この操作のメソッドが、指定された1組のデータオブジェクトに対して呼び出されることに留意されたい。このオブジェクトは、データ区画内に含まれるすべてのオブジェクトのサブセットの場合もある。
本発明の核心は、計算グリッド内の「ノード」の代わりに分散キャッシュの「区画」に対して操作のメソッドを呼び出すことによる、データ並列操作を高可用性にする新しい仕組みを提供することである。区画、およびそれらが含むデータオブジェクトがノード全体に均等に分配されるので、図5に示すように、計算グリッド内のすべてのノードでデータ並列操作が呼び出される。データ並列操作の進捗を追跡するためにデータ区画を使用することで、分散キャッシュの高可用性オブジェクトの中にこの状態情報を保持することによりデータ並列操作の進捗および完了を追跡し、ノード故障後にデータ並列操作を再び開始することが可能になる。区画を使用することが、ノード故障後にどの操作を再び開始しなければならないかを判断する基礎となる。また、このアルゴリズムが従来技術で確立されたいくつかの手段により実行されている間に故障が発生した場合、分散キャッシュが、別のノード(「後継ノード」と呼ぶ)上でこのアルゴリズムを再び開始することができることにも留意されたい。
図6は、本発明の高可用性データ並列操作を実装するための一連のステップを示す。最初のステップでは、すべてのノード上ですべての区画内のすべての選択されたオブジェクトについてデータ並列操作が開始され、ステップ2で、データ並列操作の完了、またはノード故障の報告を待つ。データキャッシュが、すべての区画、およびそれを構成するデータオブジェクトを高可用性のやり方で保持し、その結果、それらはノード故障、または部分的なネットワーク故障に耐え得る。
また、ステップ3で、大域結果オブジェクトへの高可用性の更新として統合操作も実行され、すべての区画からの結果を統合する。区画が各自結果オブジェクト(RO)を作成し、ステップ3でそれを大域結果オブジェクト(GRO)に統合する。この統合操作は、バイナリマージ木などの一連のステップで実行することができ、各ROをGROに直接統合する必要がないことに留意されたい。大域結果オブジェクトに統合された結果オブジェクトに関する区画リストが、大域結果オブジェクトにより保持される。データキャッシュの区画すべてが結果を報告したとき、データ並列操作が完了したことになる。
図6は、具体的にデータ並列操作の間に故障ノードから回復するためのアルゴリズムを表す。このアルゴリズムは、データ並列操作の開始および完了を遂行するコンピュータノード上で実行される。このアルゴリズムは、データ並列操作の完了を待っている間にノードが故障したことを特定する(分散キャッシュが、ノード故障を報告し、どのノードにどの区画が記憶されているかを報告する仕組みを提供する。ノード故障の明示的な報告を受け取ることによるのではなく、データ並列操作の完了タイムアウトを待つことによるなど、他の手段でもノード故障を特定することができる)。この場合、このアルゴリズムは、大域結果オブジェクト(GRO)と一緒に記憶された区画リストを使用して、区画の結果を区画0のGROに報告しなかった故障ノード上の区画に対するデータ並列操作を再び開始する。分散データキャッシュは、故障から復旧するために、故障したノードの区画を他のノード上に自動的に再ホスティングすることに留意されたい。これにより、データ並列操作が再び開始したときに、残存するノードが、欠けている結果を計算し、最終的にこの操作を完了できるようになる。また、このアルゴリズムが実行されている間に故障が発生した場合、分散キャッシュはこのアルゴリズムを別のノード上で再び開始することができることに留意されたい。
図7は、各ノード上で実行されるデータ並列操作を示す。この操作は、ローカルノード上に常駐する区画内の選択されたオブジェクトすべてに対してデータ並列操作を呼び出す。次に、この操作は、その結果を近傍の結果オブジェクトROに統合する。最後に、この操作は、ROを区画0の大域結果オブジェクトGROに統合し、分散キャッシュのどの区画が完了したかを報告する。この実装では、直接GROにではなく、たとえば、バイナリマージ木の形の他の中間結果オブジェクトにROを統合することができることに留意されたい。ノード故障が発生した場合、図7に示す一連のステップが中断される場合があり、結果が報告されないことになる。この場合、図6に示す一連のステップが、ノード故障のために結果を報告しなかった区画に対するデータ並列操作を再び開始する。
このシーケンスは以下の通りである。
1.1つのノードが、分散キャッシュ内の指定された1組のオブジェクトにメソッド呼出しを分配する。これらのオブジェクトは、データセットを含み、そのデータセットに対してメソッドを呼び出す(従来技術の熟練者により十分に確立された、分散キャッシュの問合せ機構を使用して1組のオブジェクトを選択することができることに留意されたい)。次に、データキャッシュは、各区画内の指定された1組のオブジェクトに対する呼出しのために、メソッド呼出しをすべての区画に分配する。
2.すべてのノード上の分散キャッシュが、各ノード上の区画内のすべてのオブジェクトに対してメソッドを呼び出す。各区画は、メソッド呼出しを完了したオブジェクトを追跡し、高可用性の複製された記憶装置の一部である近傍の「結果オブジェクト」の中にこの情報を記憶する。サーバが故障した場合、または部分的なネットワーク故障後に利用できなくなった場合、分散キャッシュは、残存するノードにその区画を再ホスティングし、これらのノードは、近傍にホスティングしているすべての区画についてメソッド呼出しを完了する。これは、データキャッシュの区画を通常に回復する一環として、近傍の結果オブジェクトを調べ、次に、その区画内の残りのオブジェクトに対してメソッドを呼び出すことにより、完了する(複数の故障により、この復旧過程が繰り返されことになる場合があることに留意されたい)。
3.結果オブジェクトを使用して、分散キャッシュ内の各区画が、その区画に対するすべてのメソッド呼出しをいつ完了したかを判断する。次に、各区画は、すべての区画に関する完了の進捗を記憶する「大域結果オブジェクト」にこの情報を統合する。統合操作は、大域結果オブジェクトに対する更新、または中間結果オブジェクトに対する更新という形をとる。中間結果オブジェクトはその後、大域結果オブジェクトに統合される。最後の統合で、すべての区画が完了を報告したと判断された場合、分散キャッシュは開始ノード(または、故障が発生した場合には、その後継ノード)に信号を送る。大域結果オブジェクトに統合する前、またはその間にノードが故障した場合、故障ノード上の区画に対するメソッド呼出し、および統合操作は、ステップ2のように、必要に応じて、データ区画の正常復旧後に残存するノード上で再び開始される。また、大域結果オブジェクトは、分散キャッシュ内に記憶されたオブジェクトとしてサーバ故障に耐えることが保証されている。
統合操作はまた、ユーザ指定のリダクション操作を実行して、データ並列メソッド呼出しの結果を結合することもできる。たとえば、すべてのデータオブジェクト全体の最大値を計算することができる。このように、本発明のメソッドは、高可用性マップ/リデュースアルゴリズムを実装するのに役立つ。マップ/リデュースアルゴリズムは、従来技術で説明されており、広く使用されている。
高可用性なやり方でデータ並列操作を実装するこの方法には、従来技術にまさる重要な利点が3つある。
・ステップ1では、データキャッシュの区画がすべてのノードにわたり均等に分配され、かつデータオブジェクトがすべての区画にわたり均等に分配されるので、本発明は、ノードに対するメソッドの直接呼出しと同じ拡張性を享受する。これにより、すべてのノードがデータ並列操作に参加し、かつ同量の作業を行うことが保証され、このことは故障発生後でさえも当てはまる。
・データ並列操作を追跡するためにデータ区画を使用することが、当然、サーバ故障、および部分的なネットワーク故障に対処するための基礎となる。区画、およびそれを構成するオブジェクトの数が、サーバ故障、または部分的なネットワーク故障後にも変わらないままなので、区画により、ステップ2のデータ並列操作の進捗を確実に追跡することができ、ステップ3でその操作の完了を確実に報告することができる。データ並列操作の進捗を追跡するために、分散キャッシュのデータ区画、および結果オブジェクトを使用することで、データ複製、および分散キャッシュの復旧により、それらの本来の高可用性を利用している。本発明は、現在のデータ並列システムに欠けている高可用性を提供する。
・データ並列操作を実装し追跡するこの方法はまた、アプリケーションプログラムに、一連のノードメンバシップを追跡させて、ステップ2でどのデータオブジェクトがメソッドを呼び出されたか、またはデータ並列操作により処理されないで残存するかを判断させるという難しさおよび複雑さを回避する。既知のメンバシップ全体に信頼できるマルチキャストを採用する分散計算システムでは、サーバ故障後にどのデータオブジェクトを個々に操作すべきかを知る演繹能力がメンバシップ内のノードにない。故障後のノード全体へのオブジェクトの再分配を実装することは、区画を有する高可用性分散キャッシュを実装することと等価である。本発明は、データ並列操作の完了を追跡する、煩雑でない、より信頼できる方法を構成する。
したがって、本発明の特定の実施形態の説明として本発明を説明してきたが、本発明はそれに限定されるわけではない。本発明の精神および範囲内で詳細を変更することができ、前記精神および範囲は広く解釈され、本書に添付の特許請求の範囲の特徴以外は限定されない。

Claims (5)

  1. メソッド呼出しの進捗および完了を追跡することにより、複数のノードを含む計算グリッド内の高可用性データ並列操作を実装する方法であって、
    a)高可用性分散キャッシュシステムを使用して、各区画に少なくとも1つのデータオブジェクトを含む少なくとも2つの高可用性区画を前記複数のノードに記憶し、残存するノードに故障したノードの前記区画を分配し、
    b)前記分散キャッシュの前記ノード上のすべての区画の中の選択されたオブジェクトに対して1組のメソッド呼出しを含むデータ並列操作を実行し、その結果を前記分散キャッシュ内に記憶された別のオブジェクトに統合し、
    c)すべての選択されたデータオブジェクトに対する前記メソッド呼出しの完了に関して、開始ノード、または前記開始ノードが故障した場合にはその後継ノードに、各区画に対する前記データ並列操作の完了を報告し、
    d)構成するデータオブジェクトすべてについてどの区画が自分の結果を前記開始ノード、またはその後継ノードに報告したかを判断することにより、前記データ並列操作の完了を追跡し、
    e)ノードが故障した後に、前記メソッド呼出しの前記開始ノード、またはその後継ノード上でメソッドを実行して、前記故障ノード上のどの区画が結果を報告していないかを判断し、
    f)前記残存するノード上の前記区画内の選択されたオブジェクトに対してメソッド呼出しを再び開始する、
    ことを含む方法。
  2. 前記データ並列操作の前記メソッド呼出しを実行するノードの前記故障が、ネットワーク通信リンク故障によるものである、請求項1に記載の方法。
  3. 前記データ並列操作の前記メソッド呼出しを実行するノードの前記故障が、ノード自体の故障によるものである、請求項1に記載の方法。
  4. 前記メソッドの完了、または故障に関する前記状態報告が、区画内の少なくとも1つのデータオブジェクトにより送られる、請求項1に記載の方法。
  5. 区画がそのデータオブジェクトを前記メソッド呼出しに応答させなかったことを立証する前記状態報告を受け取ったとき、前記メソッド呼出しの前記開始ノードが、報告結果に満足がいくまで、その区画に前記呼出しを再送する、請求項4に記載の方法。
JP2010528002A 2007-10-03 2008-10-03 計算グリッド上に高可用性データ並列操作を実装する方法 Pending JP2010541100A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US99761207P 2007-10-03 2007-10-03
PCT/US2008/011487 WO2009045526A1 (en) 2007-10-03 2008-10-03 A method for implementing highly available parallel operations on a computational grip

Publications (1)

Publication Number Publication Date
JP2010541100A true JP2010541100A (ja) 2010-12-24

Family

ID=40526581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010528002A Pending JP2010541100A (ja) 2007-10-03 2008-10-03 計算グリッド上に高可用性データ並列操作を実装する方法

Country Status (4)

Country Link
US (1) US9880970B2 (ja)
EP (1) EP2195747A4 (ja)
JP (1) JP2010541100A (ja)
WO (1) WO2009045526A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539192B2 (en) * 2010-01-08 2013-09-17 International Business Machines Corporation Execution of dataflow jobs
CN102045196B (zh) * 2010-12-08 2012-09-19 中国科学院软件研究所 一种Delaunay三角网并行构建方法
US8560779B2 (en) 2011-05-20 2013-10-15 International Business Machines Corporation I/O performance of data analytic workloads
US9529837B2 (en) * 2013-05-06 2016-12-27 Sas Institute Inc. Systems and methods involving a multi-pass algorithm for high cardinality data
CN105453068A (zh) * 2013-07-31 2016-03-30 慧与发展有限责任合伙企业 使用分布式缓存的数据流处理
US10346267B2 (en) 2014-10-31 2019-07-09 Red Hat, Inc. Registering data modification listener in a data-grid
CN105426256B (zh) * 2015-11-03 2019-05-03 中电莱斯信息系统有限公司 一种基于多进程协同的大批量实时目标并行处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030195938A1 (en) * 2000-06-26 2003-10-16 Howard Kevin David Parallel processing systems and method
JP2005515551A (ja) * 2002-01-10 2005-05-26 マッシブリー パラレル テクノロジーズ, インコーポレイテッド 並列処理システム及び方法
EP1580661A1 (en) * 2004-11-17 2005-09-28 Raytheon Company Scheduling in a high-performance computing (HPC) system
US20060173984A1 (en) * 2005-01-31 2006-08-03 Cassatt Corporation Application governor providing application-level autonomic control within a distributed computing system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6021508A (en) * 1997-07-11 2000-02-01 International Business Machines Corporation Parallel file system and method for independent metadata loggin
US6594785B1 (en) * 2000-04-28 2003-07-15 Unisys Corporation System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions
AU6778601A (en) * 2000-06-26 2002-01-08 International Business Machines Corporation Data management application programming interface for a parallel file system
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US7277952B2 (en) * 2001-09-28 2007-10-02 Microsoft Corporation Distributed system resource protection via arbitration and ownership
US6859866B2 (en) * 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US7152026B1 (en) * 2001-12-07 2006-12-19 Ncr Corp. Versioned node configurations for parallel applications
WO2004081762A2 (en) * 2003-03-12 2004-09-23 Lammina Systems Corporation Method and apparatus for executing applications on a distributed computer system
US7117388B2 (en) * 2003-04-28 2006-10-03 International Business Machines Corporation Dynamic, Non-invasive detection of hot-pluggable problem components and re-active re-allocation of system resources from problem components
CN1292346C (zh) * 2003-09-12 2006-12-27 国际商业机器公司 用于在分布式计算体系结构中执行作业的系统和方法
US6928589B1 (en) * 2004-01-23 2005-08-09 Hewlett-Packard Development Company, L.P. Node management in high-availability cluster
US20050283658A1 (en) * 2004-05-21 2005-12-22 Clark Thomas K Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
US7543180B2 (en) * 2006-03-08 2009-06-02 Sun Microsystems, Inc. Enhancing throughput and fault-tolerance in a parallel-processing system
JP2008123357A (ja) * 2006-11-14 2008-05-29 Honda Motor Co Ltd 並列計算機システム、並列計算方法および並列計算機用プログラム
JP4809209B2 (ja) * 2006-12-28 2011-11-09 株式会社日立製作所 サーバ仮想化環境における系切り替え方法及び計算機システム
US7631169B2 (en) * 2007-02-02 2009-12-08 International Business Machines Corporation Fault recovery on a massively parallel computer system to handle node failures without ending an executing job
US7802128B2 (en) * 2007-03-26 2010-09-21 Oracle International Corporation Method to avoid continuous application failovers in a cluster
US20080270704A1 (en) * 2007-04-30 2008-10-30 He Dingshan Cache arrangement for improving raid i/o operations
US8352835B2 (en) * 2009-06-10 2013-01-08 International Business Machines Corporation Data verification using checksum sidefile

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030195938A1 (en) * 2000-06-26 2003-10-16 Howard Kevin David Parallel processing systems and method
JP2005515551A (ja) * 2002-01-10 2005-05-26 マッシブリー パラレル テクノロジーズ, インコーポレイテッド 並列処理システム及び方法
EP1580661A1 (en) * 2004-11-17 2005-09-28 Raytheon Company Scheduling in a high-performance computing (HPC) system
JP2006146864A (ja) * 2004-11-17 2006-06-08 Raytheon Co 高性能計算(hpc)システムにおけるスケジューリング
US20060173984A1 (en) * 2005-01-31 2006-08-03 Cassatt Corporation Application governor providing application-level autonomic control within a distributed computing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200600464005; 夷藤 勇人 Hayato Itoh: 'J2EEクラスタリングシステムへのアプリケーションパーティショニングの適用による処理性能の向上 Perf' PROVISION Vol.12 No.4 第12巻 第4号, 20051031, 69頁〜75頁, 日本アイ・ビー・エム株式会社 IBM Japan,Ltd. *
JPN6013039386; 夷藤 勇人 Hayato Itoh: 'J2EEクラスタリングシステムへのアプリケーションパーティショニングの適用による処理性能の向上 Perf' PROVISION Vol.12 No.4 第12巻 第4号, 20051031, 69頁〜75頁, 日本アイ・ビー・エム株式会社 IBM Japan,Ltd. *

Also Published As

Publication number Publication date
EP2195747A4 (en) 2011-11-30
WO2009045526A1 (en) 2009-04-09
EP2195747A1 (en) 2010-06-16
US9880970B2 (en) 2018-01-30
US20100262871A1 (en) 2010-10-14

Similar Documents

Publication Publication Date Title
Glendenning et al. Scalable consistency in Scatter
US9880970B2 (en) Method for implementing highly available data parallel operations on a computational grid
US8286026B2 (en) Fault-tolerance and fault-containment models for zoning clustered application silos into continuous availability and high availability zones in clustered systems during recovery and maintenance
US8682959B2 (en) System and method for fault tolerant processing of information via networked computers including request handlers, process handlers, and task handlers
US7979862B2 (en) System and method for replacing an inoperable master workload management process
US20110044209A1 (en) Systems and methods for providing a quiescing protocol
US8082344B2 (en) Transaction manager virtualization
US20070206611A1 (en) Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters
JP2001518660A (ja) 多重ノードクラスタにおける多重プロセッサノードの逐次及び確実な始動及び/又は再ロード方法
CN108810115B (zh) 一种适用于分布式数据库的负载均衡方法、装置及服务器
CN106796537A (zh) 计算集群中的分布式组件
CN112492022A (zh) 提高数据库可用性的集群、方法、系统及存储介质
US7386753B2 (en) Subscription-based management and distribution of member-specific state data in a distributed computing system
Saraswat et al. A comparative study of checkpointing algorithms for distributed systems
CN105827744A (zh) 云存储平台的数据处理方法
Hu et al. Transactional mobility in distributed content-based publish/subscribe systems
e Silva et al. Application execution management on the InteGrade opportunistic grid middleware
JP7416768B2 (ja) 分散コンピューティング環境で分散調整エンジンを非破壊的にアップグレードする方法、装置およびシステム
Abid et al. A novel scheme for node failure recovery in virtualized networks
CN111209084A (zh) 一种faas分布式计算方法和装置
US7152026B1 (en) Versioned node configurations for parallel applications
Flauzac et al. CONFIIT: a middleware for peer-to-peer computing
CN113518126A (zh) 一种面向联盟链的交叉容错方法
CN110647440A (zh) 一种基于状态机的大数据任务处理方法及系统
Gupta et al. Peers-for-peers (P4P): an efficient and reliable fault-tolerance strategy for cycle-stealing P2P applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111003

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130712

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130813

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140311