JP5637791B2 - 計算機システム及びそのデータ処理方法 - Google Patents

計算機システム及びそのデータ処理方法 Download PDF

Info

Publication number
JP5637791B2
JP5637791B2 JP2010220223A JP2010220223A JP5637791B2 JP 5637791 B2 JP5637791 B2 JP 5637791B2 JP 2010220223 A JP2010220223 A JP 2010220223A JP 2010220223 A JP2010220223 A JP 2010220223A JP 5637791 B2 JP5637791 B2 JP 5637791B2
Authority
JP
Japan
Prior art keywords
data
distributed
computer
execution
information
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.)
Expired - Fee Related
Application number
JP2010220223A
Other languages
English (en)
Other versions
JP2012073975A (ja
Inventor
隆 安井
隆 安井
鵜飼 敏之
敏之 鵜飼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010220223A priority Critical patent/JP5637791B2/ja
Priority to US13/012,094 priority patent/US8555107B2/en
Publication of JP2012073975A publication Critical patent/JP2012073975A/ja
Application granted granted Critical
Publication of JP5637791B2 publication Critical patent/JP5637791B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Description

本発明は、計算機システム、及び計算機システムにおけるデータ処理方法に係り、特に、大量のデータを複数の計算機で並列に処理する計算機システムおよびその障害発生時のデータ処理方法に関する。
近年、計算機システムで処理されるデータ量は爆発的に増加している。このデータ量の増大にともなってデータ処理に要する時間が増加し、ジョブが所定の時間内に終了しないという問題が生じている。これに対してデータ処理を高速化するため、大量なデータを複数の計算機で並列に処理することが必要となってきている。
大量なデータを複数の計算機で処理する技術として、たとえば、非特許文献1に示されるような、分散メモリ技術がある。分散メモリ技術は、複数の計算機が備えるメモリを統合して、論理的に1つのメモリ空間を構成し、そのメモリ空間にデータを格納する技術である。分散メモリ技術では、実質的にデータが複数の計算機のメモリに分散して配置されるため、これら分散して配置されたデータをそれぞれの計算機で並列して処理することが可能となる。また、データが計算機のメモリ内に配置されるので、ディスク装置などの外部記憶装置との間でのデータの入出力処理が削減される。この結果として、データ処理の高速化を図ることができる。
一方で、分散メモリ技術には、ある計算機に障害が発生した場合、その計算機に保持されたデータが失われる危険性がある。このため、分散メモリ技術では、計算機のメモリ内に保持されたデータの複製を作成し、それを異なる計算機のメモリに配置することで、障害発生時におけるデータの消失を回避している。ある計算機で障害が発生した場合には、データの複製を保持している計算機において、障害が発生した計算機で行われていた処理を再実行することができる。ただし、障害発生時における他の計算機での処理の再実行は、その計算機において実行されていた処理の終了後に行われることになるため、障害発生時には、全体のデータ処理の終了が遅れることになる。
計算機の障害発生時にデータの複製を使用した処理の再実行を高速化する技術として、たとえば、特許文献1や特許文献2に示されるように、計算機の二次記憶デバイスへデータを分散配置する技術がある。特許文献1や特許文献2に開示された技術では、ある計算機の保持するデータの複製が他の複数の計算機の二次記憶デバイスへ分散して配置される。ある計算機に障害が発生した場合には、その計算機の保持していたデータの複製が配置された二次記憶デバイスを持つ複数の計算機により、障害が発生した計算機が保持していたデータを並列に処理することで、再実行に要する時間を低減できる。
特開2000−322292号公報 特開2001−101149号公報
GemStone Systems,Inc.,"GemFire Enterprise,"Technical White Paper,2007
ところで、上述した従来の分散メモリ技術では、大量なデータを複数の計算機へ分散させる場合、例えば、取引銘柄といった特定の情報をキーとしてデータを分散させる。このため、データの分散に用いるキーとしてどのような情報を用いるかにより各計算機に保持されるデータの量が異なることになる。従って、特許文献1や特許文献2に示されるように、データの複製を単純に互いに異なる計算機へ分散するだけでは、再実行に要する時間を含めて各計算機のデータ処理を平準化することは難しい。
本発明は、上記の問題点に鑑みてなされたもので、その目的は、大量なデータを複数の計算機で並列処理する計算機システムにおいて、障害発生時の再実行を含めたデータ処理の平準化を図ることにある。
本発明の前記の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば次の通りである。
本発明に係る計算機システムは、その一つの態様において、データを格納したストレージ装置と、当該ストレージ装置が接続されてそのデータを用いたデータ処理を管理する第1の計算機と、当該第1の計算機に接続され、データ処理を分散して実行する複数の第2の計算機とを有する。第1の計算機は、与えられた複数の第2の計算機へのデータの分散配置に関する指針を示すヒント情報を参照し、ストレージ装置に保持されたデータを複数の分散データに分割し、分散データおよび分散データの各々の複製データを複数の第1の計算機のメモリに分散させて配置させる分散配置手段、および、第2の計算機にデータ処理の実行を要求し、第2の計算機のいずれかで障害が発生した場合、当該障害が発生した第2の計算機に配置された分散データの複製が配置された第2の計算機に、障害が発生した第2の計算機で行われていたデータ処理の再実行を要求する実行管理手段を有する。また、第2の計算機は、分散配置手段からの要求に応じて、分散データを自計算機のメモリに保持するメモリ管理手段、および、実行管理手段からの要求に応じてデータ処理を実行するデータ処理手段を有する。
また、本発明の他の態様において、そのデータ処理方法は、データ処理を分散して実行する複数の第1の計算機と、前記複数の第1の計算機での前記データ処理の実行を管理する第2の計算機と、前記データ処理で利用されるデータを格納するストレージ装置と、前記複数の第1の計算機、前記第2の計算機、および、前記ストレージ装置を相互に接続するネットワークとを含んで構成される計算機システムにおいて、第2の計算機に与えられ、第1の計算機へのデータの分散配置に関する指針を示すヒント情報にしたがって、ストレージ装置に保持されたデータを複数の分散データに分割し、分散データおよび分散データの各々の複製データを複数の第1の計算機のメモリに分散させて配置させる。複数の第1の計算機により、第1の計算機のそれぞれに配置された分散データを用いてデータ処理を実施し、第1の計算機のいずれかで障害が発生した場合、当該障害が発生した第1の計算機に配置された分散データの複製が配置された第1の計算機で、障害が発生した第1の計算機で行われていたデータ処理を再実行することを特徴とする。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば次の通りである。
本発明によれば、大量のデータを複数の計算機で並列に処理する計算機システムにおいて、障害発生時の再実行を含めたデータ処理を計算機間で平準化させることが可能になる。
本発明が適用された計算機システムの一実施形態における概略構成を示すブロック図である。 メモリストレージ領域213に配置された分散データ214を管理するためのメモリストレージ管理情報212のデータ構成を示す概念図である。 ジョブ実行管理情報222のデータ構成を示す概念図である。 再実行情報の構成を示す概念図である。 分散メモリストレージ管理情報224の構成を示す概念図である。 分散データ配置情報225の構成を示す概念図である。 複製情報の構成を示す概念図である。 分散データ配置ヒント情報226の構成を示す概念図である。 分散メモリ管理クライアントプログラム210により実施されるメモリストレージ領域213へのデータ配置処理のフローチャートである。 分散メモリ管理クライアントプログラム210により実施されるメモリストレージデータ解放処理のフローチャートである。 分散メモリ管理クライアントプログラム210により実施されるメモリストレージアクセス処理のフローチャートである。 計算機間メモリストレージアクセス処理のフローチャートである。 ジョブ実行管理部221により実施されるジョブ実行受付処理のフローチャートである。 ジョブ実行管理部221により実施されるジョブ実行処理のフローチャートである。 ジョブ実行管理部221により実施されるジョブ結果受付処理のフローチャートである。 分散メモリストレージ管理部223により実施される分散データ配置処理のフローチャートである。 再分散配置処理のフローチャートである。 再配置処理のフローチャートである。 分散メモリストレージ管理部223により実施される分散データ配置更新処理のフローチャートである。 分散メモリストレージ管理部223により実施される分散データ解放処理のフローチャートである。 分散メモリストレージ管理部223により実施される分散データ配置通知処理のフローチャートである。
以下、本発明の実施の形態を添付図面に基づいて説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
図1は、本発明が適用された計算機システムの一実施形態における概略構成を示すブロック図である。
本実施の形態における計算機システムは、ジョブを実行する複数の計算機110と、計算機110でのジョブの実行を管理する管理計算機120と、計算機110で実行されるジョブへの入力データ、及び計算機110で実行されたジョブの出力であるデータを格納するストレージ装置130とを含んで構成される。計算機110相互、及び各計算機110と管理計算機120とは、ネットワーク100を介して相互に接続されている。
計算機110は、各々、演算処理を行なうプロセッサ111、プログラムやデータを格納するメモリ112、及び、計算機110をネットワーク100に接続するためのインタフェース113を有して構成される。
計算機120は、演算処理を行なうプロセッサ121、プログラムやデータを格納する
メモリ122、計算機120をネットワーク100に接続するインタフェース123、及
びストレージ装置130が接続されるインタフェース124を含んで構成される。

各計算機110のメモリ112には、計算機120から要求されるジョブを行なうためにプロセッサ111により実行されるジョブプログラム200と、計算機110がそれぞれ保有するメモリ112を使用して構成される分散メモリを管理するためにプロセッサ111により実行される分散メモリ管理クライアントプログラム210が保持される。これらのプログラムは、常にメモリ112上に保持されている必要はなく、それぞれの計算機が有する図示しないディスク装置などの外部記憶装置に保持され、必要に応じてメモリ112上に読み出されてプロセッサ111により実行されるように構成されてもよい。
計算機110それぞれのメモリ112には、分散メモリを構成するために、後述する分
散メモリ管理クライアントプログラム21によって、メモリストレージ領域213が確
保される。これら複数のメモリストレージ領域213は、分散メモリ管理サーバプログラ
ム221、及び分散メモリ管理クライアントプログラム21により、論理的に1つのス
トレージとして提供される。本明細書ではこのストレージのことを分散メモリと呼ぶ。分
散メモリに格納されるデータは、分散データ214として、複数のメモリ11に確保さ
れたメモリストレージ領域213に分散して配置される。各計算機110のメモリ11
には、それぞれの分散メモリ管理クライアントプログラム21が、メモリストレージ領
域213に配置された分散データ214を管理するために用いるメモリストレージ管理情
報212が保持される。
計算120のメモリ122には、複数の計算機110のメモリ112を使用して構成される分散メモリを管理するためにプロセッサ121で実行される分散メモリ管理サーバプログラム220が保持される。分散メモリ管理サーバプログラム220も、ジョブプログラム200、分散メモリ管理クライアントプログラム210と同様に、図示しない外部記憶装置に保持され、必要に応じてメモリ122上に読み出され、プロセッサ121により実行されるように構成されてもよい。
分散メモリ管理サーバプログラム220は、計算機110で実行されるジョブの管理を行なうジョブ実行管理部221と、分散メモリ管理クライアントプログラム210とともに分散メモリを管理する分散メモリストレージ管理部223を有する。メモリ122には、ジョブ実行管理部221が複数の計算機110で実行されるジョブを管理するために用いるジョブ実行管理情報222と、分散メモリストレージ管理部223が分散メモリ、及び分散メモリに配置された分散データを管理するために用いる分散メモリストレージ管理情報224分散データ配置情報225、及び分散データ配置ヒント情報226が保持される。
本実施形態において、ジョブの実行に使われるデータ230は、ファイル等、所定の単位で管理され、ストレージ130に格納されている。データ230は、ジョブの実行に先立ってストレージ130から読み出され、分散データ214としてそれぞれの計算機110のメモリ112に確保されたメモリストレージ領域213に分散して配置される。各計算機110上のジョブプログラム200は、それぞれ、自計算機110に確保されたメモリストレージ213上に配置された分散データ214を用いてジョブを実行する。各計算機110で実行されているジョブが終了すると、ジョブにより更新等された分散データ214は、統合されて、データ230としてストレージ130に格納される。本実施形態では、このように、データ230を用いるジョブが、複数の計算機110上で分散して実行される。
本実施形態において、データ230は、複数のレコードを有して構成される。各レコードには、データとしての値を保持する少なくとも1つのフィールドが含まれる。
図2は、各計算機110上の分散メモリ管理クライアントプログラム211が、自身が
動作する計算機のメモリ112に確保されたメモリストレージ領域213に配置された分
散データ214を管理するメモリストレージ管理情報212のデータ構成を示す概念図で
ある。図において、メモリストレージ管理情報212は、テーブル形式で管理された情報
として示されているが、具体的には、配列、あるいはリスト構造等、各情報項目間を関連
づけることのできる任意のデータ構造を用いて実現することができる。このことは、以降
説明する他の情報についても同様である。
メモリストレージ管理情報212は、メモリ112へ配置されている分散データ214
の元のデータであるストレージ130に格納されたデータ230を識別するデータ識別子
300、データを構成する各レコードのレコード長310、データ230を分散メモリに
分散して配置する際にキーとして使用されたフィールドの識別子である分散キー320、メモリストレージ領域213へ配置されている分散データ214を識別する分散データ識別子330、分散データ識別子330で識別される各分散データ214に含まれ、分散キー320で特定されるフィールドの値の範囲を示す分散キーレンジ340、分散データ識別子330で識別される分散データ214に含まれるレコードの数を示すレコード数350、及び、分散データ識別子330で識別される分散データ214のメモリストレージ領域213内での配置位置を示す情報としてメモリアドレス360を含んでいる。
たとえば、図2に示すメモリストレージ管理情報212においてデータ識別子“D0”のデータに着目してみると、データ“D0”の分散キーは“F0”であって、分散データ識別子“D0_0”で識別され、キーレンジ“K0〜K99”に含まれる600レコードの分散データが、メモリアドレス“0x10000000”から始まるメモリストレージ領域内の領域に、分散データ識別子“D0_1_1”で識別され、キーレンジ“K175〜K199”に含まれる100レコードのデータが、メモリアドレス“0x10040000”から始まる領域に、また、分散データ識別子“D0_2_0”で識別され、キーレンジ“K200〜K244”に含まれる100レコードのデータが、メモリアドレス“0x10080000”から始まる領域に、それぞれ配置されていることが判る。なお、後述するように、分散データ識別子“D0_1_1”、“D0_2_0”で識別される分散データは、それぞれ、データ“D0”の分散データの内、分散データ識別子“D0_1”、“D0_2”で識別され、他の計算機110に配置されたデータの部分的な複製となるデータである。
図3は、ジョブ実行管理情報222のデータ構成を示す概念図である。
ジョブ実行管理情報222は、ジョブ実行管理部221が複数の計算機110により分散して実行されるジョブを管理するために用いられ、ジョブを識別するためのジョブ識別子400、ジョブの入力となるデータ230を識別する入力データ識別子、ジョブの実行結果として出力されるデータを識別する出力データ識別子420、ジョブを分散して実行する計算機110の台数であり、分散して実行される部分ジョブの数を示す分散数430、ジョブを分散して実行する計算機110を識別する計算機識別子440、各計算機110で分散して実行されているジョブの状態を示す実行状態450、ジョブを実行していた計算機110で障害が発生した際のジョブの再実行に関する情報を識別する再実行識別子460を含んでいる。
図3に示すジョブ実行管理情報222より、ジョブ“J0”は、データ“D0”、“D1”を入力データとし、データ“D2”を出力するジョブであり、計算機識別子“C0”、“C1”、“C2”、の3台の計算機110により分散して実行されていることが判る。なお、実行状態450にはジョブの実行状態を示す情報として、ジョブを分散して実行している計算機ごとに、その計算機に割り当てられたジョブが実行中であることを示す“Running”、ジョブが正常に終了したことを示す“Normal End”、計算機の障害等によりジョブが異常終了したことを示す“Abnormal End”、及び、ジョブの実行待ちであることを示す“Waiting”が設定される。
図4は、再実行情報の構成を示す概念図である。
再実行情報460は、障害等によりいずれかの計算機110上で実行されていたジョブを他の計算機110で再実行する際に、再実行されるジョブ(以降、再実行ジョブと呼ぶ)の状態を管理するために、ジョブ実行管理部221により用いられる。再実行情報は、再実行ジョブを識別するための再実行識別子500、再実行識別子500で識別される再実行ジョブの分散数510、再実行ジョブが割り当てられる計算機の計算機識別子520、及び再実行ジョブが割り当てられた各計算機における再実行ジョブの実行状態を示す実行状態情報530を含む。
本実施形態において分散数510は、再実行識別子500で識別される再実行ジョブを分散して実行する計算機数であり、1つの再実行識別子500に対応して分散数510で示される台数分の計算機識別子520及び実行状態情報530が設定される。また、再実行識別子500は、ジョブ実行管理情報222の再実行識別子460に対応しており、あるジョブに係る再実行ジョブの実行状態は、再実行識別子460と同じ再実行識別子が設定された再実行情報により管理することができる。従って、図3及び図4を参照すれば、ジョブ“J0”に係り計算機“C2”で実行されていたジョブの再実行ジョブ“RJ0_2”は、計算機“C0”、“C1”の2台の計算機110により分散して実行され、計算機“C0”では再実行ジョブが“Waiting”、すなわち待ちの状態にあり、計算機“C1”で再実行ジョブが“Running”、すなわち実行中であることが理解される。
なお、本実施形態において、再実行情報は、ジョブ実行管理情報222に付随する情報としてメモリ122に保持されているものとする。また、本実施形態では、再実行識別子460、500によりジョブ実行管理情報222により管理されるジョブと、そのジョブに係る再実行ジョブの再実行情報とが関係づけられているが、再実行識別子460に代えて関係する再実行情報へのポインタ情報を用い両者を関係付けるようにしてもよく、あるいは、再実行情報をジョブ実行管理情報222の一部として直接保持するようにしてもよい。
図5は、分散メモリストレージ管理情報224の構成を示す概念図である。
分散メモリストレージ管理情報224は、分散メモリストレージ管理部223が複数の計算機110のメモリを使用して構成する分散メモリを管理するために用いる情報である。本実施形態において、分散メモリストレージ管理部223は、複数の分散メモリストレージを構成することが可能であり、分散メモリストレージ管理情報224は、個々の分散メモリストレージを識別する分散メモリ識別子600、分散メモリ識別子600で識別される分散メモリの構成に使用される計算機110の数を示す計算機数610,同じく、分散メモリの構成に使用される計算機110の計算機識別子620、分散メモリの合計メモリ容量を示す総メモリ領域情報630、及び、分散メモリの未使用領域のメモリ容量を示す空メモリ領域情報640を含む。
図5に示す分散メモリストレージ管理情報224において、例えば、分散メモリ識別子“0”で識別される分散メモリは、計算機識別子“C0”、“C1”、及び“C2”で識別される計算機110の備えるメモリ112上の領域で構成され、総メモリ容量8GB(ギガバイト)、空きメモリ領域が7GBあることを示している。
図6は、分散データ配置情報225の構成を示す概念図である。
分散データ配置情報225は、分散メモリストレージ管理部223が、分散メモリへのデータの配置を管理するために用いられ、複数の計算機110のメモリ112へ分散して配置される分散データ214の元となるデータ230を識別するデータ識別子700、複数の計算機110のメモリ112へデータ230を分散して配置する数、すなわちデータ230の分割数でありデータ分割後の分散データ214の数を示す分散数710、データ230を分散データ214に分割する際にキーとして使用するフィールドの識別子である分散キー720、各分散データを識別するための分散データ識別子730、各分散データに含まれ、分散キー720で特定されるフィールドが保持する値の範囲を示す分散キーレンジ740、各分散データに含まれるレコードの数を示すレコード数750、各分散データが配置される計算機110の計算機識別子760、及びジョブの再実行時に使用される分散データの複製に関する情報の識別子770を含む。
図6に示す分散データ配置情報225において、データ“D0”は、フィールド“F0”を分散キーとして3つの分散データに分割され、計算機“C0”、“C1”、及び“C2”に分散配置されていることが理解される。各分散データには、分散データ識別子730として“D0_0”、“D0_1”、“D0_2”が割り当てられ、それぞれに、フィールド“F0”の値が“K0〜K99”の600レコード、“K100〜K199”の100レコード、“K200〜K299”の100レコードが含まれる。また、各分散データに係る複製データについての複製情報は、それぞれ、複製識別子“RD0_0”、“RD0_1”、“RD0_2”で示されることが判る。
図7は、複製情報の構成を示す概念図である。本実施形態において分散データの複製(以下、複製データと呼ぶ)は、さらに複数に分割され、元となる分散データが配置された計算機110とは異なる複数の計算機110に分散して配置される。以下では、1台の計算機に配置された複製データの部分を部分複製データと呼ぶ。
複製情報は、複数の複製データに関する複製情報を含んでいる。各複製データに関する複製情報はそれぞれ、その複製情報を識別する複製識別子800、複製データを分散して配置する計算機の台数を示す分散数810、各計算機に分散して配置された部分複製データを判別するための分散データ識別子820、分散データ識別子820で識別される部分複製データに含まれるデータの範囲を示す分散キーレンジ830、分散データ識別子820で識別される部分複製データに含まれるレコード数840、及び各部分複製データが配置される計算機110の計算機識別子850を含む。
図7において、例えば、複製情報“RD0_0”は、複製データが2台の計算機に分散配置され、分散データ識別子“D0_0_0”、“D0_0_1”が割り当てられた2つの部分複製データからなることを示している。そして、部分複製データ“D0_0_0”は、分散キーレンジ“K0〜K49”の300レコードを含み計算機“C1”に配置され、部分複製データ“D0_0_1”は、分散キーレンジ“K50〜K99”の300レコードを含み計算機“C2”に配置されることが理解される。なお、図6に示す分散データ配置情報225を参照することにより、複製情報“RD0_0”は、データ“D0”の一部である分散データ“D0_0”の複製データに関する複製情報であることが判る。
なお、本実施形態において、複製情報は、分散データ配置情報225に付随する情報としてメモリ122に保持されているものとする。また、本実施形態では、複製識別子770、800により分散データとその複製データに関する複製情報とが関係づけられているが、複製識別子770に代えて関係する複製情報へのポインタ情報を用い両者を関係付けるようにしてもよく、あるいは、複製情報を分散データ配置情報225の一部として保持するようにしてもよい
図8は、分散データ配置ヒント情報226の構成を示す概念図である。
分散データ配置ヒント情報226は、分散配置を行うデータ230のデータ識別子900、データ230を分散して配置させる計算機110の数、すなわちデータ230の分割数でありデータ分割後の分散データ214の数を示す分散数910、データ230を分割する際にキーとして使用するフィールドを特定する分散キー920、データ230を分散して配置する際に分散データ214のキーとなるフィールドに保持される値の範囲を示す分散キーレンジ情報930、ジョブの再実行に用いられる分散データの複製生成時に、分散データをさらに分散させて処理することが可能か否かを示す再分散処理可否情報940、分散データの複製生成時のポリシを示す複製ポリシ950、分散データの複製生成時に、分散データの複製をさらに分散させるためのデータ範囲を指定する再分散レンジ情報960、及び計算機110での障害発生時に複製の分散データを使用してジョブ200を分散して再実行した結果としてそれら処理を行った計算機110のメモリストレージ領域214に書き込まれたデータに対する処理の方法を指定する再結合処理情報970を含む。
複製ポリシ950として設定される情報には、分散データの複製を生成するに当たって、ジョブ再実行時に再実行ジョブを実行する計算機間の処理負荷を平準化することを指定する“平準化(Leveling)”や、分散キー920で指定されたフィールドの値の範囲を予め指定する“固定キーレンジ(Fixed-Key range)”が含まれる。複製ポリシ950に“固定キーレンジ(Fixed-Key range)”が設定されるときは、再分散レンジ情報960に分散データごとに、それを分割するときに使われる分散キー920で指定されたフィールドの値の範囲が設定される。
また、再結合処理情報970には、ジョブ200を分散して実行した結果として各計算機110のメモリストレージ領域214に出力されたデータに対するマージ(Merge)やソート(Sort)を指定する情報の他、各出力データに対する積み上げ等の統計処理、あるいは、使用者が独自に用意した処理等を指定できるようにしてもよい。ここで指定された処理を実行することで、本来、元の分散データに対するジョブの実行結果として得られる分散データを得ることができる。
図9は、本実施の形態において分散メモリ管理クライアントプログラム210により実施されるメモリストレージ領域213へのデータ配置処理のフローチャートである。
データ配置処理において、分散メモリ管理クライアントプログラム210は、計算機120の分散メモリ管理サーバプログラム220から分散データ214の配置に関する情報を受け付ける(ステップ1100)。分散メモリ管理クライアントプログラム210は、受け付けた分散データ214の配置情報にしたがって自計算機110のメモリ122に確保したメモリストレージ領域213へ分散データ214を配置する(ステップ1110)。メモリストレージ領域213に分散データ214を配置した後、分散メモリ管理クライアントプログラム210は、受け付けた分散データ214の配置情報と、分散データ214を配置したメモリストレージ領域213のアドレス情報をメモリストレージ管理情報212へ登録する(ステップ1120)。
図10は、本実施の形態において分散メモリ管理クライアントプログラム210により実施されるメモリストレージデータ解放処理のフローチャートである。メモリストレージデータ解放処理は、分散データ214を保持するために使用していたメモリストレージ領域213を解放し、他のデータのために利用できるようにする際に実施される。
メモリストレージデータ解放処理では、まず、分散メモリ管理クライアントプログラム210が、計算機120の分散メモリ管理サーバプログラム220から分散データ214の解放に関する情報として、解放すべき分散データの識別子を含む解放要求を受け付ける(ステップ1200)。分散メモリ管理クライアントプログラム210は、受け付けた分散データ214の解放情報にしたがって分散データ214を配置しているメモリストレージ領域213を解放する(ステップ1210)。この後、分散メモリ管理クライアントプログラム210は、解放したメモリストレージ領域213に保持されていた分散データ214の配置情報をメモリストレージ管理情報212から削除する(ステップ1220)。
図11は、本実施の形態においてジョブプログラム200からの要求に応じて、分散メモリ管理クライアントプログラム210により実施されるメモリストレージアクセス処理のフローチャートである。
ジョブプログラム200は、ジョブの実行に際してデータ230をアクセスしようとす
る場合、自計算機110内の分散メモリ管理クライアントプログラム210に、データ2
30の識別子とアクセスしようとするレコードにおけるキーとを含むアクセス要求を発行
する。この場合のキーは、データ230の分散配置の際にデータ230を分割するために
用いられた分散キー320で指定されたフィールドの値である。アクセス要求が、分散デ
ータへのアクセス要求である場合には、元のデータ230の識別子に代えて、該当する分
散データの識別子が指定される。分散メモリ管理クライアントプログラム210は、これ
らアクセス要求を受け付けると、メモリストレージ管理情報212を参照して、受け付け
たアクセス要求が自計算機110のメモリストレージ領域214に保持された分散データ
214の元のデータ230の識別子を指定したアクセス要求か否か判定する(ステップ1
300)。
ステップ1300で、元のデータ230の識別子を指定したアクセス要求であると判定された場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、アクセス要求で指定されたキーを含む分散データ214がメモリ112に保持されているか判定する(ステップ1310)。
ステップ1310において、指定されたキーを含む分散データ214がメモリ112に保持されていないと判定された場合、分散メモリ管理クライアントプログラム210は、計算機120の分散メモリ管理サーバプログラム220に問合せ、指定されたキーを含む分散データ214を保持している計算機110の情報を取得する(ステップ1320)。分散メモリ管理サーバプログラム220から該当する分散データ214を保持している計算機110の情報を取得すると、分散メモリ管理クライアントプログラム210は、該当する計算機110の分散メモリ管理クライアントプログラム210へ指定されたキー及びそのキーを含む分散データ214の識別子を含むアクセス要求を発行する(ステップ1330)。この後、該当する分散データ214を保持する計算機110から指定されたキーを含む分散データ214へのアクセス結果として、指定されたキーの値に対応するレコードを受け取り、ジョブプログラムに200へ返す(ステップ1340)。
ステップ1300で、元のデータ230の識別子を指定したアクセス要求ではないと判定された場合、すなわち、分散データの識別子を指定したアクセス要求である場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、アクセス要求が自計算機110のメモリ112に保持されている分散データ214に対するアクセス要求か判定する(ステップ1400)。
アクセス要求が、自計算機110のメモリ112に保持されていない元のデータ230の分散データに対するアクセス要求の場合、そのアクセス要求は、他の計算機110のメモリ213に保持された分散データ214の複製に対するアクセス要求である。この場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、ジョブプログラム200からのアクセス要求で指定されたキーを含む分散データの複製がメモリ112に保持されているか判定する。指定されたキーを含む分散データの複製がメモリ112に保持されていない場合、分散メモリ管理クライアントプログラムは、ステップ1600の処理へ進む(ステップ1410)。
ステップ1410で、指定されたキーを含む分散データの複製がメモリ112に保持されている場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、該当する分散データの複製を保持しているメモリストレージ領域213のアドレスへアクセスする(ステップ1420)。この後、分散メモリ管理クライアントプログラム210は、分散データの複製へのアクセス結果を受け取り、それをジョブプログラム200へ返す(ステップ1340)。
ステップ1400で、アクセス要求が、メモリ112に保持している元のデータ230の分散データに対するアクセス要求であった場合、分散メモリ管理クライアントプログラム210は、そのアクセスが書き込みアクセスか否か判定する(ステップ1500)。
ジョブプログラム200からのアクセス要求が書き込みアクセスではない場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、該当する分散データを保持しているメモリストレージ領域213のアドレスへアクセスする(ステップ1510)。この後、分散メモリ管理クライアントプログラム210は、分散データへのアクセス結果を受け取り、それをジョブプログラム200へ返す(ステップ1340)。
一方、ステップ1500で、ジョブプログラム200からのアクセス要求が書き込みアクセスの場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、分散データを保持しているメモリストレージ領域213の該当するアドレス位置に保持されたレコードを更新する。
次に、分散管理クライアントプログラム210は、計算機120の分散メモリ管理サーバプログラム220に問合せ、アクセス要求で指定されたキーを含む分散データの複製が配置されている計算機110の情報を取得する(ステップ1600)。その後、分散管理クライアントプログラム210は、分散メモリ管理サーバプログラム220から取得した情報に基づいて、該当する計算機110に対し、アクセス要求で指定されたキーを含む分散データの複製へのアクセス要求を発行する。このアクセス要求には、分散データの複製の識別子と指定されたキーとが含まれる(ステップ1610)。最後に、分散管理クライアントプログラム210は、指定されたキーを含む分散データのアクセス結果をジョブプログラム200へ返す(ステップ1620)。
図12計算機間メモリストレージアクセス処理のフローチャートである。計算期間メモリストレージアクセス処理は、図11におけるステップ1330、1610において、分散データが配置された他の計算機110に対してアクセス要求が発行された場合に、このアクセス要求を受けた計算機110の分散メモリ管理クライアントプログラム210により実施される。
他の計算機110からのアクセス要求があると、分散メモリ管理クライアントプログラム210は、受け付けたアクセス要求が書き込みアクセスを要求するものか否か判定する(ステップ1700)。受け付けたアクセス要求が書き込みアクセスではない場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、要求された分散データを保持しているメモリストレージ領域213のアドレスへアクセスし、要求されたデータを取得する(ステップ1710)。要求されたレコードを取得した後、分散メモリ管理クライアントプログラム210は、そのデータをアクセス要求元の計算機110へ返す(ステップ1715)。
一方、ステップ1700で、受け付けたアクセス要求が書き込みアクセスを要求するものであった場合、分散メモリ管理クライアントプログラム210は、メモリストレージ管理情報212を参照して、分散データを保持しているメモリストレージ領域213の該当するアドレスに保持されたデータを更新し(ステップ1720)、さらに、アクセス要求で指定された分散データの識別子及びキーに基づいてメモリストレージ管理情報212を参照し、受け付けたアクセス要求が分散データの複製へのアクセスかどうか判定する(ステップ1800)。
受け付けたアクセス要求が分散データの複製へのアクセスではない場合、分散メモリ管理クライアントプログラム210は、計算機120の分散メモリ管理サーバプログラム220に問合せて指定するキーを含む分散データの複製を保持している計算機110の情報を取得し(ステップ1810)、取得した情報で特定される計算機110へ指定されたキーを含む分散データの複製へのアクセス要求を発行する(ステップ1815)。分散データの複製へのアクセス要求を行った後、そのアクセス要求に対するアクセス結果を受領すると、分散メモリ管理クライアントプログラム210は、分散データのアクセス結果をアクセス要求基の計算機110に返す(ステップ1820)。
一方、ステップ1800で、受け付けたアクセス要求が分散データの複製へのアクセスであると判定された場合分散メモリ管理クライアントプログラム210は、ステップ1810、1815の処理をスキップして、ステップ1820において分散データのアクセス結果をアクセス要求元の計算機110へ返す。
図13は、本実施の形態においてジョブ実行管理部221により実施されるジョブ実行受付処理のフローチャートである。
ジョブ実行管理部221は、使用者からジョブが実行時に使用するデータ230を複数の計算機110のメモリに分散して配置する際のヒント情報を取得する。具体的には、分散データ配置ヒント情報226の各設定項目として必要な情報を、ファイル形式、あるいは、ディスプレイ、キーボード等のユーザインタフェースを介した入力情報として取得すればよい。ジョブ実行管理部221は、取得したヒント情報を分散データ配置ヒント情報226としてメモリ122に保持する(ステップ1900)。
次いで、ジョブ実行管理部221は、分散データ配置ヒント情報226を分散メモリストレージ管理部223へ渡し、複数の計算機110のメモリ112へのデータ230の分散配置を要求する(ステップ1910)。計算機110のメモリ112へのデータ230の分散配置が終了すると、ジョブ実行管理部221は、分散メモリストレージ管理部223から分散データを配置した計算機110の情報を受け取る(ステップ1920)。この後、ジョブ実行管理部221は、分散メモリストレージ管理部223から取得した計算機110の情報と、実行するジョブの情報とからジョブ実行管理情報を作成し、それをジョブ実行管理情報222としてメモリ122に保持する(ステップ1930)。
図14は、本実施の形態においてジョブ実行管理部221により実施されるジョブ実行処理のフローチャートである。
ジョブ実行管理部221は、ジョブ実行管理情報222の実行状態450を参照して、障害等により正常に終了しなかったジョブ200が存在するか判定する(ステップ2000)。正常に終了しなかったジョブ200が存在しなければ、ジョブ実行管理部は、さらに、実行状態450を参照し、すべてのジョブが正常に終了したか判定する。すべてのジョブが正常に終了している場合、ジョブ実行管理部221は、ジョブ実行処理を終了する(ステップ2005)
一方、すべてのジョブがまだ正常終了していない場合、ジョブ実行管理部221は、ジョブ実行管理情報222を参照して、分散データを使用した実行待ちのジョブ200が存在するか判定する。分散データを使用した実行待ちのジョブ200が存在しない場合、ジョブ実行管理部221は、ステップ2000の処理に戻る(ステップ2100)。ステップ2100で、分散データを使用した実行待ちのジョブ200が存在する場合、ジョブ実行管理部221は、ジョブ実行管理情報222を参照して、当該実行待ちのジョブの実行に割り当てられた計算機110の中に、他のジョブを実行中の計算機110が存在するか判定する。他のジョブを実行中の計算機110がある場合、ジョブ実行管理部221は、そのままステップ2000の処理に戻る(ステップ2110)。
実行待ちのジョブ200の実行に割り当てられた計算機110の中に、他のジョブを実行中の計算機110が存在しなければ、ジョブ実行管理部221は、それらの計算機110に対して、分散データを使用したジョブの実行を要求する(ステップ2120)。
ステップ2000で、正常に終了しなかったジョブ200が存在する場合には、分散データの複製を使用した再実行が必要となる。ジョブ実行管理部221は、ジョブ実行管理情報222の再実行識別子460をキーとして再実行情報を参照し、複製の分散データを使用した再実行待ちのジョブ200が存在するか判定する(ステップ2010)。複製の分散データを使用した再実行待ちのジョブ200が存在する場合、ジョブ実行管理部221は、さらに、再実行情報を参照して、再実行待ちのジョブ200の実行に割り当てられた計算機110が他のジョブを実行中か判定する。該当する計算機110が他のジョブを実行中であれば、ジョブ実行管理部221は、ステップ2000の処理へ戻る(ステップ2020)。
再実行待ちのジョブ200の実行に割り当てられた計算機110が他のジョブを実行中でない場合、ジョブ実行管理部221は、その計算機110に対して、複製の分散データを使用したジョブの再実行を要求する。その後、ジョブ実行管理部221は、ステップ2000の処理に戻る(ステップ2030)。
一方、ステップ2010で、再実行情報を参照した結果、複製の分散データを使用した再実行待ちのジョブ200が存在しない場合には、すでに複製の分散データを使用した再実行は終了している。そこで、ジョブ管理部221は、分散データ配置ヒント情報226を参照して、計算機110で複製の分散データを使用して再実行した結果に対する結合処理の指定を確認する(ステップ2200)。その後、ジョブ実行管理部221は、複製の分散データを使用して再実行した計算機110へ指定された結合処理の実行を要求して処理を終える(ステップ2010)。
図15は、ジョブ実行管理部221により実施されるジョブ結果受付処理のフローチャートである。
ジョブ実行管理部221は、計算機110からジョブの結果通知を受け付けると、受け付けたジョブの結果通知が複製の分散データを使用して再実行された結果の結合処理の通知か判定する(ステップ2300)。受け付けた結果通知が、複製の分散データを使用して再実行した結果の結合処理の通知の場合、ジョブ実行管理部221は、分散メモリストレージ管理部223へ結合した再実行結果データの配置情報の更新を要求する(ステップ2310)。
次に、ジョブ実行管理部221は、ジョブ実行管理情報222を参照し、後続のジョブで使用されない分散データの解放を、分散メモリストレージ管理部223へ要求する(ステップ2320)。さらに、ジョブ実行管理部221は、ジョブ実行管理情報222を参照して、再実行した元のジョブ200の実行状態を更新する(ステップ2330)。
一方、ステップ2300において、受け付けた結果通知が、複製の分散データを使用して再実行した結果の結合処理の通知ではないと判定された場合、ジョブ実行管理部221は、計算機110から受け付けたジョブ200の結果通知が複製の分散データを使用したジョブの再実行の結果の通知か判定する(ステップ2400)。結果通知が複製の分散データを使用したジョブの再実行の結果の通知であれば、ジョブ実行管理部221は、ジョブ実行管理情報222の再実行情報460を参照して、再実行したジョブの実行状態を更新する(ステップ2410)。
ステップ2400において、結果通知が、複製の分散データを使用したジョブの再実行の結果の通知ではない場合、ジョブ実行管理部221は、計算機110から受け付けたジョブ実行の結果通知に従って、ジョブ実行管理情報222の実行状態450を更新する(ステップ2500)。
次に、ジョブ実行管理部221は、計算機110からの通知により分散データを使用したジョブの実行が正常終了しているか判定する(ステップ2510)。分散データを使用したジョブ実行が正常終了していない場合、ジョブ実行管理部221は、正常に終了しなかったジョブの実行に用いられた分散データの複製を配置している計算機110の情報を分散メモリストレージ管理部223から受け取り、再実行情報に登録する(ステップ2515)。
一方、ステップ2510で、分散データを使用したジョブの実行が正常終了している場合、ジョブ実行管理部221は、さらに、ジョブ実行管理情報222を参照して、分散データの元のデータ230に関係する他の分散データを使用したジョブの実行が正常に終了しているか判定する。正常に終了していないジョブが残っている場合、ジョブ実行管理部221は、処理を終了する(ステップ2520)。
ステップ2520で、他の分散データを使用したジョブの実行が正常終了している場合、ジョブ実行管理部221は、ジョブ実行管理情報222を参照して、後続のジョブで使用されない分散データを判別し、その解放を分散メモリストレージ管理部223に要求する。
図16は、本実施の形態において分散メモリストレージ管理部223により実施される分散データ配置処理のフローチャートである。この処理は、ジョブ実行管理部221からの分散データの配置要求を契機に開始される。
分散データ配置処理において、分散メモリストレージ管理部223は、ジョブ実行管理部221から分散データの配置要求と共に、ジョブが実行時に使用するデータ230を複数の計算機110のメモリに分散して配置する際のヒント情報226を取得する(ステップ2600)。分散メモリストレージ管理部223は、分散データ配置情報225を参照して、分散配置を要求されているデータに先行するジョブの実施のために配置されているデータが含まれているか判定する(ステップ2605)。
分散配置が要求されたデータに、先行するジョブの実施のために既に配置されているデータが含まれていない場合、分散メモリストレージ管理部223は、分散メモリストレージ管理情報224を参照して、メモリ使用量の少ない計算機110から順に要求されたデータの分散配置に必要とされる数だけ計算機を確保する(ステップ2610)。一方、分散配置が要求されたデータに、先行するジョブの実施のために既に分散配置されているデータが含まれている場合、分散メモリストレージ管理部223は、先行するジョブと同じ計算機110を確保する(ステップ2620)。
ステップ2610、あるいは2620において計算機110を確保した後、分散メモリストレージ管理部223は、分散データ配置ヒント情報226を参照して、確保した計算機110の分散メモリ管理クライアントプログラム210へ分散配置が要求されたデータを構成する分散データの配置を要求し、それら計算機の情報(計算機識別子)を分散データ配置情報225へ登録する(ステップ2630)。次に、分散メモリストレージ管理部223は、確保した計算機110へ配置した分散データのレコード数を算出し、分散データ配置情報225の該当するエントリへ登録する(ステップ2635)。
分散データ配置情報225への情報の登録を行った後、分散メモリストレージ管理部223は、分散データ配置情報225の複製情報識別子770が設定されているか否かを参照して、確保した計算機110へ配置したすべての分散データについて、その複製の配置まで終了したか判定する。すべての分散データについてその複製の配置が終了している場合、分散データ配置処理は終了する(ステップ2700)。
一方、複製の配置が終了していない分散データが存在する場合、分散メモリストレージ管理部223は、分散データ配置ヒント情報226を参照して、複製を生成する分散データをキーとなるフィールドで再度分散させることが可能か判定する(ステップ2710)。分散データを再度分散して処理することが可能な場合、分散メモリストレージ管理部223は、後述する再分散配置処理を実施し(ステップ2720)、そうでない場合、分散メモリストレージ管理部223は、後述する再配置処理を実施する(ステップ2730)。
図17は、分散データ配置処理において複製の生成に際して、分散データを再度分散させるために実施される再分散配置処理のフローチャートである。
分散データを再度分散して配置させることができる場合、分散メモリストレージ管理部223は、分散データ配置ヒント情報226を参照して、複製を生成するポリシは平準化か否か判定する(ステップ2800)。複製を生成するポリシが平準化であれば、分散メモリストレージ管理部223は、分散データ配置情報225を参照して、複製を生成する分散データが配置された計算機以外の計算機110に分散配置された分散データのレコード数の比率を使用し、再分散後の複製のレコード数の比率がその逆数比となるように再分散に用いるキーとなるフィールドの値の範囲を調整する(ステップ2810)。再分散時のキーとなるフィールドの値の範囲の調整を行った後、分散メモリストレージ管理部223は、そのフィールドの値の範囲にしたがって複製を配置する計算機110の分散メモリ管理クライアントプログラム210へ複製の分散データの配置を要求する(ステップ2815)。
この後、分散メモリストレージ管理部223は、分散データの複製に関する情報を複製情報に登録し、その複製識別子を分散データ配置情報225の複製識別子欄に登録する(ステップ2830)。
一方、ステップ2800で、複製を生成するポリシが平準化ではない場合、分散メモリストレージ管理部223は、分散データ配置ヒント情報226を参照して、使用者の指定したキーとなるフィールドの値の範囲にしたがって、分散データが配置された計算機以外の計算機110の分散メモリ管理クライアントプログラム210へ複製の分散データの配置を要求し、ステップ2830の処理に進む(ステップ2820)。
図18は、分散データ配置処理において複製の生成に際して、分散データを再度分散させることができない場合に実施される再配置処理のフローチャートである。
分散データを再度分散して配置させることができない場合、分散メモリストレージ管理部223は、分散データ配置ヒント情報226を参照して、複製を生成するポリシが平準化か判定する(ステップ2900)。複製を生成するポリシが平準化の場合、分散メモリストレージ管理部223は、分散データ配置情報225を参照して、複製を生成する分散データが配置された計算機以外の残りの計算機110に保持されている分散データのレコード数の比率の逆数を使用して分散データを分散して配置するレコード数を調整し、各計算機110に配置される分散データの量を平準化させる(ステップ2910)。レコード数の調整の後、分散メモリストレージ管理部223は、調整したレコード数にしたがって残りの計算機110の分散メモリ管理クライアントプログラム210へ複製の分散データの配置を要求する(ステップ2915)。
この後、分散メモリストレージ管理部223は、分散データの複製に関する情報を複製情報に登録し、その複製識別子を分散データ配置情報225の複製識別子欄に登録する(ステップ2930)。
一方、ステップ2900で、複製を生成するポリシが平準化ではない場合、分散メモリストレージ管理部223は、分散データ配置情報225を参照して、複製を生成する分散データが配置された計算機以外の残りの計算機110の中で保持しているレコード数が最も少ない計算機110の分散メモリ管理クライアントプログラム210へ分散データの複製の配置を要求し、ステップ2930の処理に進む(ステップ2915)。
図19は、本実施の形態において分散メモリストレージ管理部223により実施される分散データ配置更新処理のフローチャートである。分散データの複製によりジョブを再実行した場合、通常、データの配置が元の分散データを処理した場合と異なってしまう。分散データ配置更新処理は、このような場合に配置情報を更新するために実施される。
分散メモリストレージ管理部223は、ジョブ実行管理部221から結合した再実行結果データの配置情報の更新要求を受け付けると(ステップ3000)、分散データ配置情報225を参照して、再実行結果データに対応する元の分散データを配置している計算機110の情報を、再実行結果データを配置している計算機110の情報に更新する(ステップ3010)。
図20は、本実施の形態において分散メモリストレージ管理部223により実施される分散データ解放処理のフローチャートである。この処理は、ジョブ結果受付処理のステップ2530においてジョブ実行管理部221から発行される開放要求を契機として実施される。
分散メモリストレージ管理部223は、ジョブ実行管理部221から分散データの開放の要求と共に解放する分散データに関する情報としてデータ識別子を取得する(ステップ3100)。分散メモリストレージ管理部223は、分散データ配置情報225として取得したデータ識別子に対応して登録された複製情報識別子770をキーとして複製情報を参照し、解放する分散データの複製が配置されている計算機110を特定する。そして、分散メモリストレージ管理部223は、特定された計算機110の分散メモリ管理クライアントプログラム210に対し、複製を格納しているメモリストレージ213の領域の解放を要求する(ステップ3110)。分散メモリストレージ管理部223は、さらに、分散データ配置情報225を参照して、取得したデータ識別子の分散データを配置している計算機110を特定し、その分散メモリ管理クライアントプログラム210に該当する分散データを格納したメモリストレージ213の領域の解放を要求する(ステップ3120)。
関係する計算機110にメモリ領域の開放要求した後、分散メモリストレージ管理部223は、解放を要求された分散データに関する配置情報を分散データ配置情報225から削除する(ステップ3130)。
図21は、本実施の形態において分散メモリストレージ管理部223により実施される分散データ配置通知処理のフローチャートである。この処理は、分散メモリ管理クライアントプログラム210からの問い合わせ、すなわち、メモリストレージアクセス処理のステップ1320、1600、及び計算機間アクセス処理のステップ1815において発行される問合せに応じて実施される。この問い合わせには、対象となる分散データの識別子とレコードを特定するためのキーとが情報として含まれる。
分散メモリストレージ管理部223は、計算機110の分散メモリ管理クライアントプログラム210から分散データの配置の問い合わせを受け付けると(ステップ3200)、問い合わせで指定された分散データの識別子に基づいて、受け付けた分散データの配置の問い合わせが、分散データの複製に対するものか判定する(ステップ3205)。
受け付けた問い合わせが分散データの複製に対するものであれば、分散メモリストレージ管理部223は、分散データ配置情報225の複製情報770を参照して、問い合わせで指定されたキーを含む複製を配置している計算機110を検索する(ステップ3210)。一方、受け付けた問い合わせが複製の配置の問い合わせではない場合、分散メモリストレージ管理部223は、分散データ配置情報225を参照して、問い合わせで指定されたキーを含む分散データを配置している計算機110を検索する(ステップ3220)。
ステップ3210、あるいは3120において該当する計算機110が見つかると、分散メモリストレージ管理部223は、その計算機110に関する情報として計算機識別子を含む情報を問い合わせ元の計算機110の分散メモリクライアントプログラム210へ返す(ステップ3230)。
本実施の形態によれば、分散メモリ管理サーバプログラムにより、使用者から取得した分散データ配置ヒント情報に基づいて分散データ、及びその複製が複数の計算機に分散配置される。各計算機への複製の配置は、各計算機に配置された分散データのレコード数の比率に応じて決定される。これにより、障害発生時のジョブの再実行を含め、各計算機で行われる処理を平準化することが可能になる。
また、分散メモリ管理クライアントプログラムにより、再分散した分散データの複製に対するジョブからのアクセスを、元の分散データに対するアクセスと透過に見せることで、再分散して処理することが不可能な分散データであっても計算機のメモリ使用量を平準化するように複製を分散配置することが可能になる。
以上、本発明者によってなされた発明を実施の形態に基づいて具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の態様を採りえることはいうまでもない。
本発明は、計算機システムにおける障害発生時の処理方法に適用することが可能であり、特に、大量なデータを複数の計算機で並列処理するシステムにおける障害発生時のデータ処理の再実行方法に適用することが可能である。
100 ネットワーク
110 計算機
111 プロセッサ
112 メモリ
113 インタフェース
120 計算機
121 プロセッサ
122 メモリ
123 インタフェース
124 インタフェース
130 ストレージ装置
200 ジョブプログラム
210 分散メモリ管理クライアントプログラム
212 メモリストレージ管理情報
213 メモリストレージ領域
214 分散データ
220 分散メモリ管理サーバプログラム
221 ジョブ実行管理部
222 ジョブ実行管理情報
223 分散メモリストレージ管理部
224 分散メモリストレージ管理情報
225 分散データ配置情報
226 分散データ配置ヒント情報

Claims (10)

  1. データ処理を分散して実行する複数の第1の計算機と、前記複数の第1の計算機での前
    記データ処理の実行を管理する第2の計算機と、前記データ処理で利用されるデータを格
    納するストレージ装置と、前記複数の第1の計算機、前記第2の計算機、および、前記ス
    トレージ装置を相互に接続するネットワークとを含んで構成される計算機システムにおけ
    るデータ処理方法であって、
    前記第2の計算機に与えられ、前記複数の第1の計算機への前記データの分散配置に関
    する指針を示すヒント情報にしたがって前記ストレージ装置に保持されたデータを複数の
    分散データに分割し、前記分散データおよび前記分散データの各々の複製データを前記複
    数の第1の計算機のメモリに分散させて配置し、
    前記複数の第1の計算機により、前記第1の計算機のそれぞれに配置された前記分散デ
    ータを用いてデータ処理を実施し、
    前記第1の計算機のいずれかで障害が発生した場合、当該障害が発生した第1の計算機
    に配置された分散データの複製が配置された第1の計算機で前記障害が発生した第1の計
    算機で行われていたデータ処理を再実行し、
    前記ヒント情報は、前記分散データをさらに分散させて配置させることが可能か否かを
    示す情報を含むとともに、前記複製データによるデータ処理の再実行の結果に対する処理方法を指定する情報を含むことを特徴とするデータ処理方法。
  2. 前記分散させて配置する際に、前記ヒント情報が前記分散データをさらに分散させることが可能であることを示す場合、前記分散データの各々を前記ヒント情報に従ってさらに分割して前記複製データを生成し、前記複製データの各々を、その複製データの元とされた分散データとは異なる第1の計算機に配置させることを特徴とする請求項1記載のデータ処理方法。
  3. 前記分散させて配置する際に、前記ヒント情報が前記分散データをさらに分散させることができないことを示す場合、前記分散データの各々の複製を前記第1の計算機の各々に配置された分散データおよび複製データの量が平準化するよう前記複製データを配置させることを特徴とする請求項記載のデータ処理方法。
  4. 前記複製データによるデータ処理の再実行の後、前記処理方法を指定する情報に従って、前記複製データによるデータ処理の再実行の結果に対する処理を前記第2の計算機から
    前記第1の計算機に要求することを特徴とする請求項記載のデータ処理方法。
  5. 前記分散させて配置する際に、前記ヒント情報が前記分散データをさらに分散させることができないことを示す場合、配置された前記分散データの量がもっとも少ない第1の計算機に前記複製データを配置させることを特徴とする請求項記載のデータ処理方法。
  6. データを格納したストレージ装置と、前記ストレージ装置が接続されて前記データを用
    いたデータ処理を管理する第1の計算機と、該第1の計算機に接続され、前記データ処理
    を分散して実行する複数の第2の計算機とを有し、
    前記第1の計算機は、与えられた前記複数の第2の計算機への前記データの分散配置に
    関する指針を示すヒント情報を参照し、前記ストレージ装置に保持されたデータを複数の
    分散データに分割し、前記分散データおよび前記分散データの各々の複製データを前記複数の第の計算機のメモリに分散させて配置させる分散配置手段、および、前記第2の計
    算機にデータ処理の実行を要求し、前記第2の計算機のいずれかで障害が発生した場合、
    当該障害が発生した第2の計算機に配置された分散データの複製が配置された第2の計算
    機に、前記障害が発生した第2の計算機で行われていたデータ処理の再実行を要求する実
    行管理手段を有し、
    前記第2の計算機は、前記分散配置手段からの要求に応じて、前記分散データを自計算
    機のメモリに保持するメモリ管理手段、および、前記実行管理手段からの要求に応じてデ
    ータ処理を実行するデータ処理手段を有し、
    前記ヒント情報は、前記分散データの各々の複製をさらに分散させて配置することが可
    能か否かを示す情報を含むとともに、前記複製データによるデータ処理の再実行の結果に
    対する処理方法を指定する情報を含むことを特徴とする計算機システム。

  7. 前記分散配置手段は、前記ヒント情報が前記分散データをさらに分散させることが可能
    であることを示す場合、前記分散データの各々を前記ヒント情報に従ってさらに分割して
    前記複製データを生成し、前記複製データの各々を、その複製データの元とされた分散デ
    ータとは異なる第2の計算機に配置させることを特徴とする請求項6記載の計算機システム。
  8. 前記分散配置手段は、前記ヒント情報が前記分散データをさらに分散させることができ
    ないことを示す場合、前記分散データの各々の複製を前記第2の計算機の各々に配置され
    た分散データおよび複製データの量が平準化するよう前記複製データを配置させることを
    特徴とする請求項記載の計算機システム。
  9. 前記分散配置手段は、前記ヒント情報が前記分散データをさらに分散させることができ
    ないことを示す場合、配置された前記分散データの量がもっとも少ない第2の計算機に前
    記複製データを配置させることを特徴とする請求項記載の計算機システム。
  10. 前記分散配置手段は、前記複製データによるデータ処理の再実行の後、前記処理方法を
    指定する情報に従って、前記複製データによるデータ処理の再実行の結果に対する処理を
    前記第2の計算機に要求することを特徴とする請求項記載の計算機システム。
JP2010220223A 2010-09-30 2010-09-30 計算機システム及びそのデータ処理方法 Expired - Fee Related JP5637791B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010220223A JP5637791B2 (ja) 2010-09-30 2010-09-30 計算機システム及びそのデータ処理方法
US13/012,094 US8555107B2 (en) 2010-09-30 2011-01-24 Computer system and data processing method for computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010220223A JP5637791B2 (ja) 2010-09-30 2010-09-30 計算機システム及びそのデータ処理方法

Publications (2)

Publication Number Publication Date
JP2012073975A JP2012073975A (ja) 2012-04-12
JP5637791B2 true JP5637791B2 (ja) 2014-12-10

Family

ID=45890861

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010220223A Expired - Fee Related JP5637791B2 (ja) 2010-09-30 2010-09-30 計算機システム及びそのデータ処理方法

Country Status (2)

Country Link
US (1) US8555107B2 (ja)
JP (1) JP5637791B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5964950B2 (ja) * 2012-04-12 2016-08-03 株式会社日立製作所 計算機システム、データ配置管理方法及びプログラム
JP5757276B2 (ja) * 2012-07-31 2015-07-29 日本電気株式会社 無停止演算処理装置、無停止演算処理システム、無停止演算処理方法、及び、無停止演算処理プログラム
CN106155802B (zh) * 2015-03-30 2020-03-13 阿里巴巴集团控股有限公司 任务调度方法、装置及控制节点
JP6434131B2 (ja) * 2015-04-15 2018-12-05 株式会社日立製作所 分散処理システム、タスク処理方法、記憶媒体
WO2017064775A1 (ja) * 2015-10-14 2017-04-20 株式会社日立製作所 分散メモリ処理システム及び分散メモリ処理方法
CN107038059A (zh) 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 虚拟机部署方法及装置
CN108804693A (zh) * 2018-06-15 2018-11-13 郑州云海信息技术有限公司 一种分布式存储方法和装置
JP2021135981A (ja) * 2020-02-28 2021-09-13 京セラドキュメントソリューションズ株式会社 データ連携システムおよび処理監視システム
JP7237436B1 (ja) 2022-03-29 2023-03-13 三菱電機株式会社 エレベータ情報処理装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5555404A (en) * 1992-03-17 1996-09-10 Telenor As Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
JPH07334382A (ja) * 1994-06-07 1995-12-22 Hitachi Ltd マルチコントローラシステム
EP0854423A1 (en) * 1997-01-20 1998-07-22 TELEFONAKTIEBOLAGET L M ERICSSON (publ) Data partitioning and duplication in a distributed data processing system
US6415373B1 (en) * 1997-12-24 2002-07-02 Avid Technology, Inc. Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner
JPH11338834A (ja) * 1998-05-26 1999-12-10 Ai System Kk 同期型並列処理システムおよび同期型並列処理方法
JP2000322292A (ja) * 1999-05-10 2000-11-24 Nec Corp クラスタ型データサーバシステム及びデータ格納方法
JP3067774B1 (ja) 1999-09-27 2000-07-24 稔 稲葉 ステレオスライドマウント並びにステレオカメラ
JP2003132040A (ja) * 2001-10-22 2003-05-09 Nippon Telegr & Teleph Corp <Ntt> シナリオ分割方式
JP2003132039A (ja) * 2001-10-22 2003-05-09 Nippon Telegr & Teleph Corp <Ntt> シナリオ分割方式
US20050010835A1 (en) * 2003-07-11 2005-01-13 International Business Machines Corporation Autonomic non-invasive backup and storage appliance
US7203871B2 (en) * 2004-06-03 2007-04-10 Cisco Technology, Inc. Arrangement in a network node for secure storage and retrieval of encoded data distributed among multiple network nodes
US7734643B1 (en) * 2004-06-30 2010-06-08 Oracle America, Inc. Method for distributed storage of data
JP2007018407A (ja) * 2005-07-11 2007-01-25 Hitachi Ltd データ複製システム
US20070234107A1 (en) * 2006-03-31 2007-10-04 International Business Machines Corporation Dynamic storage data protection
US7844851B2 (en) * 2006-12-13 2010-11-30 Oracle International Corporation System and method for protecting against failure through geo-redundancy in a SIP server
WO2008114441A1 (ja) * 2007-03-20 2008-09-25 Fujitsu Limited ストレージ管理プログラム、ストレージ管理方法およびストレージ管理装置
US8762664B2 (en) * 2007-08-30 2014-06-24 Red Hat, Inc. Replicating cache nodes in a cluster
US7836174B2 (en) * 2008-01-30 2010-11-16 Commvault Systems, Inc. Systems and methods for grid-based data scanning
US8281181B2 (en) * 2009-09-30 2012-10-02 Cleversafe, Inc. Method and apparatus for selectively active dispersed storage memory device utilization
US8281182B2 (en) * 2010-03-12 2012-10-02 Cleversafe, Inc. Dispersed storage unit selection

Also Published As

Publication number Publication date
US8555107B2 (en) 2013-10-08
US20120084597A1 (en) 2012-04-05
JP2012073975A (ja) 2012-04-12

Similar Documents

Publication Publication Date Title
JP5637791B2 (ja) 計算機システム及びそのデータ処理方法
US10977124B2 (en) Distributed storage system, data storage method, and software program
US8417991B2 (en) Mitigating reduction in availability level during maintenance of nodes in a cluster
JP3851272B2 (ja) ステートフル・プログラム・エンティティの作業負荷管理
US9727522B1 (en) Multi-tenant storage service object lifecycle management using transition job objects
EP3327589B1 (en) Delayed snapshot isolation for read service at a database
US10366075B2 (en) Database management system and method
US9323791B2 (en) Apparatus and method for expanding a shared-nothing system
US9223626B2 (en) Task execution and management in a clustered computing environment
US8832022B2 (en) Transaction processing device, transaction processing method and transaction processing program
JP2007072975A (ja) ディスクへのトランザクション・データ書き込みの方式を動的に切り替える装置、切り替える方法、及び切り替えるプログラム
US11669427B2 (en) Query-attempt processing in a database environment
US20210073198A1 (en) Using persistent memory and remote direct memory access to reduce write latency for database logging
US9984139B1 (en) Publish session framework for datastore operation records
WO2012124017A1 (ja) コマンド制御方法およびコマンド制御プログラム
US11429311B1 (en) Method and system for managing requests in a distributed system
JP6033420B2 (ja) ストレージシステムおよびストレージシステムの制御方法
CN108351801A (zh) 多版本移除管理器
US8584117B2 (en) Method to make SMP/E based products self describing
EP3629178B1 (en) System and method for providing backup services to high availability applications
JP2008186141A (ja) データ管理方法、データ管理プログラム、データ管理システム、および、構成管理装置
JP5832592B1 (ja) データ管理装置
US9607006B2 (en) Temporary distributed file persistence
US20230147295A1 (en) Mechanisms for grouping nodes
US20220309050A1 (en) Method and system for managing cross data source data access requests

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140722

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140905

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141021

LAPS Cancellation because of no payment of annual fees