JP2010097489A - 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム - Google Patents

分散データ処理システム、分散データ処理方法および分散データ処理用プログラム Download PDF

Info

Publication number
JP2010097489A
JP2010097489A JP2008268861A JP2008268861A JP2010097489A JP 2010097489 A JP2010097489 A JP 2010097489A JP 2008268861 A JP2008268861 A JP 2008268861A JP 2008268861 A JP2008268861 A JP 2008268861A JP 2010097489 A JP2010097489 A JP 2010097489A
Authority
JP
Japan
Prior art keywords
processing
worker
data
data processing
master
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.)
Granted
Application number
JP2008268861A
Other languages
English (en)
Other versions
JP5245711B2 (ja
Inventor
Shinji Nakadai
慎二 中台
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2008268861A priority Critical patent/JP5245711B2/ja
Publication of JP2010097489A publication Critical patent/JP2010097489A/ja
Application granted granted Critical
Publication of JP5245711B2 publication Critical patent/JP5245711B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

【課題】ネットワーク負荷や通信遅延の増大を防止し、輻輳の発生を抑えることができる分散データ処理システムを提供する。
【解決手段】座標導出手段7は、コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する。マスタ処理手段9は、管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および各ワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延計算手段8に計算させ、通信遅延を用いてどのワーカに処理を実行させるかを決定し、そのワーカに処理の命令を送信する。ワーカ処理手段10は、自装置以外のデータ処理装置のマスタ処理手段から処理の命令を受けたときに、その処理を実行する。
【選択図】図15

Description

本発明は、分散データ処理システム、データ処理装置、分散データ処理方法、および分散データ処理用プログラムに関し、特に、処理時間が速く、ネットワークの物理的配線やアドレス体系に依存しない分散データ処理システム、データ処理装置、分散データ処理方法、および分散データ処理用プログラムに関する。
分散システムにおける分散データ処理システムの一例が、非特許文献1〜3に記載されている。これらの分散データ処理システムでは、複数のデータセンタが存在し、個々のデータセンタは複数のラックを含み、各ラックはサーバを含んでいる。各々のサーバは、ルータまたはスイッチといったネットワーク機器により接続されている。また、この物理的な構成に応じて、サーバの割り当てられるIPアドレスが決定される。すなわち、*を任意のアドレスとして、あるデータセンタのアドレスが10.1.*.*というアドレス体系を持つとすると、そのデータセンタ内のラックは例えば10.1.1.*といったアドレス体系を持ち、さらにそのラック内のサーバは10.1.1.1といったアドレスとなる。すなわち、同じデータセンタに属する各ラックのアドレスの上位部分は共通であり、同じラックに属する各サーバのアドレスの上位部分は共通である。
これらのサーバ上で動作するプログラムは複数種類存在する。そして、チャンクサーバ、ファイルシステムマスタ、クライアント、ワーカ、マスタ、ワークキューとして動作するサーバが存在する。
チャンクサーバは、分散ファイルシステムを構成するサーバであり、ファイルデータを格納する役割を担う。ファイルシステムマスタは、分散ファイルシステムにおけるファイル名と、そのファイルを格納するチャンクサーバを対応づける役割を担うサーバである。クライアントは、この分散データ処理システムのユーザプログラムが動作するサーバであり、分散データ処理システムに対して指定した処理を依頼する。ワーカは、依頼された処理を実行するサーバであり、依頼された処理に必要なデータをチャンクサーバから取得し実行する。マスタは、ワーカ間の処理の流れや順序を管理し、適当なワーカから適当なワーカへのデータの送受信などを指示するサーバである。ワークキューは、ワーカの処理状況を監視し、どのサーバが新たな計算を実行可能かを管理し、クライアントからの要求に応じて、必要なワーカおよびマスタを確保し、クライアントの指定したプログラムをワーカおよびマスタに配置するサーバである。
クライアントによって指示され、ワーカによって実行される処理には、Map、Shuffle、Reduceの3つの段階が存在する。Mapは、異なるデータに対して同一の処理を並列に実行する段階である。入力データは、複数のキー・値ペアである。これを第1のキー・値ペアとする。一つの第1のキー・値ペアに対してMapで指定されたプログラムが実行され、それぞれは複数のキーと値ペアを出力する。これを第2のキー・値ペアとする。
Shuffle段階では、Map段階の出力である複数の第2のキー・値ペアを入力として受け取る。そして、出力された複数の第2のキー・値ペアのうち、キーについて順序付けし、同一のキーを持つものをグループ化して、キーと値リストのペアを構成する。Reduce段階では、この複数のキーと値リストのそれぞれについて、Reduceで指定されたプログラムを適用する。このReduceプログラムは、一つのキーと値リストの入力から、一つのキー・値ペアを出力する。これを第3のキー・値ペアとする。
第1のキー・値ペアは、主にチャンクサーバに格納され、第3のキー・値ペアも同様にチャンクサーバに格納される。各実行段階のうち、Map段階の処理の実行場所は、入力データである第1のキー・値ペアが格納されるチャンクサーバの近くで実行される。ここでの「近く」とは、アドレスによって判断される。即ち、指定された第1のキー・値ペアを格納するチャンクサーバがワーカとしても動作し、他の処理を行っていない等の理由で、ワーカとして利用可能な状態の時には、Map段階の処理がチャンクサーバと同一のサーバで実行される。これにより入力データのネットワーク転送を省くことができる。一方、そのチャンクサーバが他の計算を行っている等の理由で利用不可能である場合には、そのデータを格納するチャンクサーバと同一のラックに存在する利用可能なサーバに処理を割り当てることで、ラックを超えた通信を行わないようにする。この時、サーバやラックの物理構成に応じて、静的にアドレス体系を割り当てているため、サーバ同士のラックが同一のラックであるか否かを判断できる。
また、他の分散データ処理システムの一例が、非特許文献4に記載されている。この分散データ処理システムにおいても、データセンタは複数のラックを含み、各ラックは複数のサーバを含んでいる。また、サーバには、ワーカに相当するデーモンが搭載されたサーバや、ファイルシステムマスタに相当するネームサーバや、マスタおよびワークキューに相当するジョブマネージャが搭載されたサーバ等がある。
この分散データ処理システムでは、非特許文献1〜3のShuffle段階およびReduce段階に相当する処理としてAggregationが定義されている。これは複数の分散したサーバに格納されたデータを、ユーザプログラムが指定した方式でグループ化し処理を施すものであるが、ユーザプログラムが指定しなくとも、Aggregationで定義された処理が、まず同一のラックに存在するサーバに存在するデータが一つのサーバにまとめられて実行され、次にラック間でまとめられて実行される。これによりラック間におけるデータ通信量が減る。このような処理を行うために、この分散データ処理システムは、サーバとラックとの接続関係情報であるネットワーク・トポロジー情報が予め存在していることを前提にしている。
また、ネットワークにおいて座標を用いて遅延を推定する技術が非特許文献5に記載されている。非特許文献5に記載された方法では、計測された遅延を主成分分析することで、座標変換に必要な変換行列を作成し、データ格納サーバから複数の計測用サーバへの遅延測定結果に対して、この変換行列を施すことで、座標を算出する。具体的には、予め計測用サーバが他の計測用サーバとの遅延を測定し、その計測結果を行列で表す。この行列をDとする。例えば、計測用サーバが4台存在し、1台目の計測用サーバの全ての計測用サーバへの遅延測定結果がベクトル(0,1,3,3)で表されるとすると、行列Dの1行目にはこのベクトルが与えられる。このベクトルの要素は、遅延の測定結果である。各計測用サーバが同様にこのベクトルを求めることで、行列Dが求められる。この行列Dの主成分分析を行うために、DをSVD分解(Singular Value Decomposition、特異値分解)すると、以下に示す式(1)のように直交行列Uが得られる。
D = UWV 式(1)
なお、Wは特異値行列、Vは直交行列、VはVの転置行列である。
この行列Uのうち、予め定められた次元数分の列を取り出した行列Uが、座標変換に必要な変換行列である。
ネットワークにおける自身の座標を算出しようとするサーバは、例として挙げた4台の計測用サーバとの遅延を測定して、これをベクトルdとする。また、座標を算出しようとするサーバは、変換行列Uを取得し、以下に示す式(2)の計算を行うことで自身の座標cを算出する。
c = U d 式(2)
Jeffrey Dean,Sanjay Ghemawat,"MapReduce: Simplified Data Processing on Large Clusters",Proceedings of the sixth Symposium on Operating System Design and Implementation(OSDI’04),2004年12月6日 西田 圭介,"Googleを支える技術",技術評論社,p.63−75,p.137−157 Sanjay Ghemawat, Howard Gobioff, and Shun−Tak Leung,"The Google File System",Proceedings of the nineteenth ACM symposium on Operating systems principles(SOSP’03),2003年10月19日 Michael Isard,Mihai Budiu,Yuan Yu,Andrew Birrell,Dennis Fetterly,"Dryad:Distributed Data−Parallel Programs from Sequential Building Blocks",EuroSys’07,ACM,2007年 Hyuk Lim,Jennifer C. Hou,Chong Ho Choi,"Constructing Internet Coordinate System Based on Delay Measurement",Proceedings of the 3rd ACM SIGCOMM conference on Internet measurement(IMC’03)、2003年10月27日
分散データ処理では、入力とするデータが存在するサーバに最も近いサーバで処理を実行させるように処理の実行場所(サーバ)を決定する場合がある。あるいは、分散したデータを局所的に集約して、その局所集約されたデータに対して集約処理を行うように、局所実行するサーバ群を決定し、集約する処理を実行するサーバを決定する場合がある。しかし、そのような場合において、アドレスの類似性、あるいは物理的接続の情報(ネットワークの物理的な構成の情報)に基づいてネットワーク内でのサーバの近傍性を推定すると、データアクセスの速度が遅くなったり、あるいはネットワークが輻輳を起こしやすくなったりすることがある。ネットワーク内でのメッセージの到達先を表すアドレスについて、その先頭ビットが共通といった類似性では、遅延の推定精度は低い。そのため、実際には応答がより速いサーバが存在していても、より遠くのデータ管理サーバにアクセスする可能性が高い。その結果、データの入出力に時間がかかってしまう。また、ネットワーク内で離れたサーバ間でデータ通信を行うと、その経路上のスイッチで輻輳が発生しやすくなってしまう。物理的接続の情報に基づいて、同一ラックに存在しているサーバが近いと判断して、ラック単位でデータを集約して処理を行っても、実際には、ネットワーク通信における遅延が短いとは限らず、そのため、ネットワークに負荷がかかることもある。
また、分散処理システムがアドレスに基づいて近傍性を推定する場合、既にアドレス体系が決定されたシステムにその分散処理システムを導入することが困難であるという問題がある。その理由は、ネットワーク内でメッセージの到達先を表すアドレスで以て近傍性を推定するには、データセンタ、ラック、サーバといった物理的な設備の収容関係をアドレス体系に反映させる必要があるが、通常はある程度物理的な近傍性が反映されるものの、アドレス体系はセキュリティを考慮して組織毎に決定されたり、動的に変更されたりするものであるからである。
また、分散データ処理において、入力とするデータが存在するサーバに最も近いサーバで処理を実行させるように処理の実行場所を決定する際、ラックとサーバの収容関係といったネットワークトポロジの情報(物理的接続の情報)を用いて近傍性を判断する場合、ネットワークトポロジを管理するシステムが必要となるため、分散処理システムの導入が困難になるという問題がある。ネットワークトポロジ管理システムは、物理的な接続関係やアドレス構成などのネットワークトポロジを常時監視する。また、場合によっては、運用者がネットワークトポロジ管理システムに対してネットワークトポロジを入力設定する必要がある。このようなネットワークトポロジ管理システムが導入されていないシステムには、分散処理システムの導入が困難である。また、ネットワークトポロジ管理システムが導入されているシステムであっても、ネットワークトポロジの情報を分散処理システムに与えられるように、ネットワークトポロジ管理システムと分散処理システムとを接続させるサブシステムが別途必要となる。
また、分散データ処理において、入力とするデータが存在するサーバに最も近いサーバで処理を実行させるように処理の実行場所を決定する際、データの格納先と同一のサーバ、あるいは同一のラックに収容されたサーバに処理を割り当てると、最適な割り当てであることを検証できず、最適な割り当てとは異なる割り当てとなっていることがある。すなわち、同一のラックに収容されているサーバを近傍のサーバとする等の基準に従うと、実際には他のラック内に存在するサーバの遅延の方が同一ラック内のサーバより小さいとしても、同一ラックに収容されたサーバに処理を割り当ててしまう。
そこで、本発明は、ネットワーク負荷や通信遅延の増大を防止し、輻輳の発生を抑えることができる分散データ処理システム、データ処理装置、分散データ処理方法および分散データ処理用プログラムを提供することを目的とする。また、ネットワークのアドレス体系を変更したり再設計したり、あるいは、ネットワークトポロジ管理システムを構築したりする必要がなく、容易に既存のシステムに導入することができる分散データ処理システム、データ処理装置、分散データ処理方法および分散データ処理用プログラムを提供することを目的とする。
本発明による分散データ処理システムは、データを処理する複数のデータ処理装置と、個々のデータ処理装置がそれぞれ算出したデータ処理装置自身のコンピュータネットワークにおける座標を記憶する座標管理装置と、クライアントから分散処理の要求を受信すると、各データ処理装置の負荷状態に基づいて、要求された分散処理を実行するワーカと、ワーカが実行する分散処理を管理するマスタとをデータ処理装置の中から決定する割当装置とを備え、割当装置が、各データ処理装置の負荷状態を示す情報を記憶するサーバ状態記憶手段と、クライアントから分散処理の要求を受信したときに、負荷状態を示す情報に基づいてワーカとなるデータ処理装置およびマスタとなるデータ処理装置を決定し、決定した各データ処理装置にクライアントからの要求を送信し、マスタに決定したデータ処理装置に分散処理の管理開始命令を送信する割当手段とを含み、各データ処理装置が、処理対象となるデータを記憶するデータ記憶手段と、コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する座標導出手段と、二つの座標が指定されると、その二つの座標間での通信遅延を計算する遅延計算手段と、管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および各ワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延計算手段に計算させ、通信遅延を用いてどのワーカに処理を実行させるかを決定し、そのワーカに処理の命令を送信するマスタ処理手段と、自装置以外のデータ処理装置のマスタ処理手段から処理の命令を受けたときに、その処理を実行するワーカ処理手段とを含むことを特徴とする。
また、本発明によるデータ処理装置は、分散データ処理システム内で処理を実行するデータ処理装置であって、処理対象となるデータを記憶するデータ記憶手段と、コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する座標導出手段と、二つの座標が指定されると、その二つの座標間での通信遅延を計算する遅延計算手段と、クライアントが要求した分散処理の管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および処理の実行のために選択されたワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延計算手段に計算させ、通信遅延を用いてどのワーカに処理を実行させるかを決定し、そのワーカに処理の命令を送信するマスタ処理手段と、自装置以外のデータ処理装置から処理の命令を受けたときに、その処理を実行するワーカ処理手段とを備えることを特徴とする。
また、本発明による分散データ処理方法は、データを処理する複数のデータ処理装置が、コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定し、割当装置が、クライアントから分散処理の要求を受信したときに、各データ処理装置の負荷状態を示す情報に基づいて、要求された分散処理を実行するワーカと、ワーカが実行する分散処理を管理するマスタとを決定し、決定した各データ処理装置にクライアントからの要求を送信し、マスタに決定したデータ処理装置に分散処理の管理開始命令を送信し、マスタとなるデータ処理装置が、管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および各ワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を計算し、通信遅延を用いてどのワーカに処理を実行させるかを決定し、そのワーカに処理の命令を送信し、ワーカとなるデータ処理装置が、マスタとなるデータ処理装置から処理の命令を受信したときに、その処理を実行することを特徴とする。
また、本発明による分散データ処理用プログラムは、分散データ処理システム内で処理を実行する各コンピュータに搭載される分散データ処理用プログラムであって、コンピュータに、コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する座標導出処理、クライアントが要求した分散処理の管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各コンピュータおよび処理の実行のために選択されたワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を計算し、通信遅延を用いてどのワーカに処理を実行させるかを決定し、そのワーカに処理の命令を送信するマスタ処理、および、自装置以外のコンピュータから処理の命令を受けたときに、その処理を実行するワーカ処理を実行させることを特徴とする。
本発明によれば、ネットワーク負荷や通信遅延の増大を防止し、輻輳の発生を抑えることができる。また、容易に既存のシステムに導入することができる。
以下、本発明の実施形態を図面を参照して説明する。
本発明による分散データ処理システムは、分散したデータに処理を割り当てる際、あるいは、分散した処理の入出力データを配置する際に、データ入出力の通信資源を効率的に利用できるように、利用可能な複数のノードから、処理の割り当て先、あるいはデータ配置先を決定する。
図1は、本発明の分散データ処理システムの実施形態を示すブロック図である。本実施形態の分散データ処理システムは、サーバ121〜129と、データ管理マスタ113と、ワークキュー112と、座標管理マスタ114と、計測用サーバ141〜143と、クライアント111とを備える。サーバ121〜129、データ管理マスタ113、ワークキュー112、座標管理マスタ114、計測用サーバ141〜143、およびクライアント111は、それぞれプログラム制御により動作するコンピュータ(中央処理装置、プロセッサ、データ処理装置)によって実現され、ネットワーク101〜104によって接続されている。ネットワーク101〜104は、複数のコンピュータを相互接続させる。
図2は、各サーバの構成例を示すブロック図である。各サーバ121〜129は、図2に示すように、データ格納部151と、ワーカ処理手段152と、座標算出手段153と、マスタ処理手段156と、遅延推定手段157と、負荷状態通知手段158とを備える。ただし、図1では、サーバ121がワーカとして動作する場合を例にし、サーバ121の要素としてデータ格納部151、ワーカ処理手段152および座標算出手段153のみを示している。また、図1では、サーバ125がマスタとして動作する場合を例にし、サーバ125の要素として、データ格納部151、座標算出手段153と、マスタ処理手段156と、遅延推定手段157のみを図示している。また、他のサーバについては、これらの要素の図示を省略している。
計測用サーバ141〜143は、コンピュータネットワークにおける他の装置から、通信遅延測定メッセージを受けると、その送信元の装置に応答する。通信遅延測定メッセージは、コンピュータが計測用サーバ141〜143との通信遅延を測定するために計測用サーバ141〜143に対して送信するメッセージである。通信遅延測定メッセージの送信元となるコンピュータ(例えば、各サーバ)は、通信遅延測定メッセージを送信し、計測用サーバ141〜143との通信遅延(計測用サーバとの間の通信において生じる遅延時間)を計測する。
なお、サーバ121〜129が計測した計測用サーバ141〜143との通信遅延は、コンピュータネットワークにおける個々のサーバの座標を算出するために用いられる。計測用サーバ141〜143は、自身を含む各計測用サーバとの通信遅延を計測し、少なくとも一つの計測用サーバが、各サーバが通信遅延から座標を求めるための情報(例えば、前述のU )を導出しておいてもよい。
次に、図1および図2を参照して、サーバ121〜129の構成について説明する。
データ格納部151は、分散データ処理システムによる処理対象となるデータを記憶する記憶装置である。各データは、一意のデータ名を有している。各サーバ121〜129は、他の装置からの読み込みあるいは書き込み要求に応じて、指定されたデータの値を返したり、指定されたデータについて値の作成、更新、削除等を行う。
図1に示す例では、各サーバ121〜129が、データ格納部151にデータ131〜139を記憶している場合を例示している。
座標算出手段153は、コンピュータネットワークにおける自装置(サーバ)の位置を多次元の実数値で表した座標を求める。このとき、座標算出手段153は、各計測用サーバ141〜143に対して通信遅延測定メッセージを送信し、計測用サーバ141〜143との通信遅延を測定する。そして、その通信遅延から、実数の多次元座標を求める。なお、ここでは、計測用サーバの応答待ち時間(計測用サーバにメッセージを送信して計測用サーバから応答が返ってくるまでの時間)を通信遅延として用いる場合を例にして説明するが、通信遅延は応答待ち時間に限定されず、応答待ち時間以外の値であってもよい。座標算出手段153は、個々の計測用サーバとの通信遅延をそれぞれ座標値として定めてもよいが、次元圧縮を行うことが好ましい。
このような次元圧縮は、非特許文献5に記載された方法で行ってもよい。非特許文献5に記載の方法では、予め個々の計測用サーバが、それぞれ他の計測用サーバとの通信遅延を測定し、その結果を行列Dで表す。既に説明したように、仮に計測用サーバが4台存在し、1台目の計測用サーバの全ての計測用サーバへの遅延測定結果がベクトル(0,1,3,3)で表されるとすると、行列Dの1行目にはこのベクトルが与えられる。同様に、n台目の計測用サーバにおける計測結果を示すベクトルを行列Dの第n行として、行列Dを表せばよい。なお、行列Dを特定するためには、いずれかの計測用サーバが、他の各行列用サーバから通信遅延測定結果を収集すればよい。その計測用サーバは、行列Dを定めると、行列Dに対するSVD(Singular Value Decomposition)分解を行い、D=UWVの形式で表わす。SVD分解により得られる所定の行列Uのうち、予め定められた次元数分の列を取り出した行列をUとすると、通信遅延から座標を求めるための情報として行列Uの転置行列U を各サーバ121〜129に提供する。この行列U を、座標軸情報と呼ぶことがある。各サーバの座標算出手段153は、計測用サーバとの通信遅延を測定したならば、その測定結果を要素とするベクトルdを定め、式(2)の計算を行うことにより、自装置の座標cを算出すればよい。
ワーカ処理手段152は、マスタとして動作する他のサーバのマスタ処理手段156から命令を受信すると、その命令に従って処理を実行する。例えば、マスタに指定されたデータを用いて処理を行う。また、例えば、処理中に生成したデータを、マスタに指定されたデータ格納部151に出力する。マスタに指定されたデータは、自装置のデータ格納部151に記憶されたデータである場合も、他のサーバのデータ格納部151に記憶されたデータである場合もあり得る。また、マスタに指定されたデータ格納部151も、自装置のデータ格納部151に限らず、他のサーバのデータ格納部151であることもある。
マスタがクライアント111(図1参照)からの要求された分散処理を各ワーカに割り当て、ワーカ処理手段152は、マスタからの命令により、マスタが割り当てた処理を実行することになる。
遅延推定手段157は、マスタ処理手段156から2つの座標を指定されると、その座標間の距離を計算することにより、その2つの座標間での通信遅延を計算する。
マスタ処理手段156は、ワークキュー112から、分散処理の管理開始命令を受信したときに、以下の動作を開始する。なお、マスタ処理手段156には、クライアント111からの要求(プログラム)、分散処理の管理開始命令、どのサーバがワーカとして動作するかを示す情報が、ワークキュー112から送られる。
マスタ処理手段156は、ワークキュー112を介して受信したクライアント111からの要求(プログラム)を解釈し、プログラム中で指定されたデータを記憶しているサーバの情報をデータ管理マスタ113から取得する。また、マスタ処理手段156には、ワークキュー112から、どのサーバがワーカとして動作するかを示す情報も通知される。マスタ処理手段156は、クライアント111から要求された分散処理に関連する各サーバおよび各ワーカの座標から得られる二つの座標の組み合わせをそれぞれ指定し、指定した座標間における通信遅延を遅延推定手段157に計算させる。
なお、要求された分散処理に関連するサーバはワーカに限定されない。要求された分散処理に関連するサーバであってワーカ以外のサーバ(以下、要求された分散処理に関連するワーカ以外のサーバ)として、例えば、クライアント111からの要求として受信したプログラムで指定されたデータを記憶するワーカ以外のサーバが挙げられる。また、ワーカが生成したデータを取得すべきワーカ以外のサーバも該当する。なお、ワーカ以外のサーバとは、ワーカでないサーバを意味し、非ワーカのサーバということもできる。
マスタ処理手段156は、要求された分散処理に関連するサーバやワーカの座標から計算された通信遅延を用いて、どのワーカに処理を実行させるのかを決定し、そのワーカに処理の実行命令を送信して、処理を実行させる。例えば、マスタ処理手段156は、通信遅延と、要求された分散処理に関連するワーカ以外のサーバとワーカとの間で送受信されるデータ量とから、ワーカの処理実行時におけるネットワーク負荷を計算する。換言すれば、ネットワーク負荷を見積もる。そして、マスタ処理手段156は、ネットワーク負荷に基づいて、処理を実行させるワーカを決定する。
マスタ処理手段156は、サーバ間のネットワーク負荷を計算する場合、そのサーバ間の通信遅延と、そのサーバ間で送受信されるデータ量との積をネットワーク負荷として計算してもよい。例えば、ワーカAが、要求された分散処理に関連するワーカ以外のサーバBとデータを送受信して処理を行う場合のネットワーク負荷は、ワーカAとサーバB間の通信遅延に、ワーカAとサーバBが送受信するデータ量の積として求めればよい。このネットワーク負荷の計算方法は例示であり、ワーカの処理実行時におけるネットワーク負荷を他の計算方法で見積もってもよい。
マスタ処理手段156が処理を実行させるワーカを決定する態様の例として、以下の態様が挙げられる。
例えば、処理対象となるデータを記憶するワーカ以外のサーバが存在しているとする。マスタ処理手段156は、そのサーバと、一つ一つの各ワーカとの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少のワーカに、そのサーバからデータを取得させ処理を実行させることを決定する。
また、ワーカが処理を行って生成したデータを、他のワーカが入力データとして用いて処理を実行していく場合もある。その場合においても、ワーカと、一つ一つの他の各ワーカの組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少の他のワーカに、処理を完了したワーカからデータを取得させ次の処理を実行させることを決定する。
また、例えば、ワーカが、処理対象となるデータを記憶していて、そのデータ量が多い場合(例えば、閾値より多い場合)、マスタ処理手段156は、そのワーカと、一つ一つの他の各ワーカとの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少となる他のワーカを決定する。マスタ処理手段156は、決定した他のワーカに、データを有しているワーカの一部のデータを取得させ処理を実行させる。また、データを記憶していたワーカには、その残りのデータを用いて処理を実行させる。
また、例えば、ワーカが処理を行って生成したデータを取得すべきサーバ(ワーカであっても非ワーカであってもよい)が存在する場合がある。例えば、そのようなサーバが、クライアントからの要求内で定められている場合がある。マスタ処理手段156は、そのサーバと、一つ一つの各ワーカとの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少のワーカに、処理を実行させ、その処理で生成したデータを、そのサーバに出力させる。
マスタ処理手段156は、一つのワーカにのみ処理を実行させるわけではない。クライアント111からの要求(プログラム)で指定されている処理の並列性や、データの入出力関係に応じて、処理を実行させるべきワーカを、上記に例示した態様等で順番に決定していけばよい。このように、マスタとなるサーバは、ワーカとなるサーバが実行する分散処理を管理する。
マスタ処理手段156は、各ワーカが生成したデータを特定のワーカに集約させてもよい。データを集約するワーカ(すなわち、各ワーカが生成したデータを集めるワーカ)を集約ワーカと呼ぶ。マスタ処理手段156は、集約ワーカを定めて、集約ワーカに他の各ワーカからデータを取得させる。
集約ワーカを定める場合、マスタ処理手段156は、例えば、各ワーカの座標を入力として、クラスタリングアルゴリズムを用いてワーカをグルーピングして、グループの中のいずれかのワーカを集約ワーカに決定すればよい。この場合、クラスタリングアルゴリズムとして、例えば、階層的クラスタリングアルゴリズムを用いるとよい。
マスタ処理手段156は、各ワーカに対して、処理の実行命令を送信することで、各ワーカに各種処理を実行させればよい。例えば、ワーカに、他のサーバからデータを取得して処理を実行させる場合、その旨の命令をワーカに送信すればよい。ワーカのワーカ処理手段152は、この命令に従って、例えば、データの取得、処理の実行、データの出力などを行う。
負荷状態通知手段158は、自装置の負荷状態を検出し、その負荷状態を示す情報および自装置の識別情報をワークキュー112に送信する。ここで負荷状態とは、例えば、何らかの処理を実行しているという状態、あるいはしていないという状態、またはCPU(中央処理装置)の利用率といったサーバの計算負荷を表す状態である。
ワーカ処理手段152、座標算出手段153、マスタ処理手段156、および遅延推定手段157は、例えば、分散データ処理用プログラムに従って動作するCPUによって実現される。個々のサーバの記憶装置に分散データ処理用プログラムが記憶され、各サーバのCPUはそれぞれ分散データ処理用プログラムを読み込み、分散データ処理用プログラムに従ってワーカ処理手段152、座標算出手段153、マスタ処理手段156、遅延推定手段157、および負荷状態通知手段158として動作してもよい。
次に、図1を参照して、データ管理マスタ113、ワークキュー112、座標管理マスタ114、およびクライアントについて説明する。
データ管理マスタ113は、アドレス格納部117を備える。アドレス格納部117は、分散データ処理システムにおいて、データ毎に一意に与えられているデータ名と、そのデータ名から特定されるデータを記憶するサーバの情報(アドレス)とを対応付けて記憶する記憶装置である。一つのデータ名に対応するサーバの数は1つであっても複数であってもよい。複数の場合には、同一のデータが複数のサーバに記憶されていることになる。
また、データ管理マスタ113が備えるCPU(図示せず)は、サーバ(例えば、マスタとして動作するサーバ)からの問い合わせに応じて、指定されたデータ名に対応するサーバの情報を送り返す。すなわち、データ名を受信すると、そのデータ名に対応するサーバのアドレスをアドレス格納部117から読み込み、問い合わせに対する応答として送信する。従って、各サーバは、データ名に対応するサーバをデータ管理マスタ113に問い合わせることによって、そのデータ名のデータを記憶しているサーバを特定することができる。
なお、アドレス格納部117にデータ名とアドレスとの対応関係を記憶させる方法は特に限定されない。例えば、各サーバ121〜129が、自装置のデータ格納部151に新規にデータを記憶させたならば、そのデータのデータ名と自装置のアドレスとをデータ管理マスタ113に通知し、データ管理マスタ113のCPU(図示せず)がそのデータ名およびアドレスをアドレス格納部117に記憶させてもよい。あるいは、クライアント111が新規データ(例えば新規ファイル)の生成を要求する場合、クライアント111がデータ管理マスタ113に新規データの生成を要求し、データ管理マスタ113のCPU(図示せず)がどのサーバに新規データを格納すべきかを指定し、データ名とそのサーバのアドレスとをアドレス格納部117に記憶させてもよい。この場合、そのサーバのアドレスを含むファイルハンドラをクライアント111に返し、クライアント111は、そのファイルハンドラを使って新規データをサーバに書き込む。
ワークキュー112は、サーバ状態格納部116とサーバ割当手段119とを有する。サーバ状態格納部116は、複数のサーバ121〜129の負荷状態を示す情報を記憶する記憶装置である。ワークキュー112のCPUは、各サーバの負荷状態通知手段158(図2参照)が送信した負荷状態を示す情報およびサーバの識別情報を受信すると、両者を対応付けてサーバ状態格納部116に記憶させる。
サーバ割当手段119は、クライアント111から分散処理の要求(プログラム)を受けると、サーバ状態格納部116に記憶された負荷状態の情報を用いて、各サーバ121〜129の中からワーカとなるサーバおよびマスタとなるサーバを決定する。例えば、x台のサーバを用いて分散処理を実行する要求をクライアント111から受信している場合、サーバ割当手段119は、サーバ状態格納部116は、負荷状態の低い順にx台のサーバを選択し、そのx台のうち1台をマスタに決定し、残りをワーカに決定する。ただし、ここではマスタが1台である場合を例にしているが、冗長化のために2台以上のサーバをマスタとして定めてもよい。また、上記の例では、負荷状態の低い順にサーバを選択する場合を例示したが、負荷状態が低いという制約の他に、サーバの物理的な制約や論理的な制約を満たすように、サーバを選択してもよい。物理的な制約とは、処理に要するメモリ量などであり、論理的な制約とは、何らかのライブラリ、OS、ソフトウェアが搭載されていること等の制約である。例えば、クライアント111からの要求に、これらの制約が指定されている場合、その制約を満足しているサーバの中から、負荷状態の低い順に選択すればよい。なお、この場合、各サーバのメモリ量や、各サーバにどのようなソフトウェアが搭載されているか等を予めサーバ状態格納部116に記憶させておけばよい。
サーバ割当手段119は、マスタまたはワーカとして決定した各サーバに、クライアント111から受信した分散処理の要求(プログラム)を送信する。また、このとき、マスタに決定したサーバに、ワーカに決定したサーバを通知するとともに、分散処理の管理開始命令を送信する。
また、ワークキューとして動作する装置と、マスタとして動作するサーバとが同一装置であっても良い。
座標管理マスタ114は、座標格納部118を備える。座標格納部118は、個々のサーバの座標算出手段153がそれぞれ算出したサーバの座標を、サーバ毎にそれぞれ記憶する記憶装置である。サーバの座標算出手段153は、自装置の座標を算出したときにその座標と自装置の識別情報を座標管理マスタ114に送信すればよい。そして、座標管理マスタ114のCPU(図示せず)は、座標およびサーバの識別情報を受信すると、両者を対応付けて座標格納部118に記憶させればよい。
座標管理マスタ114のCPU(図示せず)は、サーバから、別のサーバを指定してそのサーバの座標の問い合わせを受けると、そのサーバに対応する座標を座標格納部118から読み込んで、問い合わせ元のサーバに返す。例えば、座標の問い合わせ元のサーバから、他のサーバの識別情報を受信したときに、その識別情報に対応する座標を検索し、その座標を問い合わせ元のサーバに送信する。
また、座標管理マスタ114のCPU(図示せず)は、特定の装置に関する座標の登録要求、修正要求、削除要求があった場合、その要求に応じて、座標の削除、修正、追加を行う。
クライアント111は、分散データ処理システムのユーザにより編集されたプログラムの処理を依頼する処理依頼手段115を有する。このプログラムは、分散処理に含まれる各処理をコンピュータ(サーバ)に実行させるためのプログラムである。例えば、どのデータを用いてどのような処理を行うか、生成したデータをどの装置に出力するか等の手順が記述される。処理依頼手段115は、このプログラムをワークキュー112に送信することにより、分散処理を要求する。
次に、本発明の動作の流れについて説明する。
図3は、各サーバが正常に稼働しているときに、負荷状態を示す情報や座標をワークキュー112や座標管理マスタ114に登録する動作の処理経過の例を示すフローチャートである。各サーバ121〜129の座標算出手段153は、各計測用サーバ141〜143に対して通信遅延測定メッセージを送信し、計測用サーバ141〜143との通信遅延を測定する。そして、座標算出手段153は、その測定結果から自装置の座標を導出し、自装置の座標を、自装置の情報(例えば、識別情報)とともに座標管理マスタ114に送信する(ステップS201)。座標管理マスタ114は、これらの情報を受信すると、座標格納部118に記憶させる。
ステップS201の後、各サーバ121〜129の負荷状態通知手段158(図2参照)は、サーバの負荷状態を示す情報を検出し、自装置の識別情報とともに、ワークキュー112に送信する(ステップS202)。サーバの負荷状態には、ワーカ処理手段152の処理負荷や、マスタ処理手段156の処理負荷も含まれる。負荷状態通知手段158は、例えば、CPU利用率等で処理負荷を表し、ワークキュー112に送信すればよい。ただし、CPU利用率は例示であり、負荷状態を示す情報を他の指標で表してもよい。ワークキュー112のCPUは、各サーバから負荷状態を示す情報および識別情報を受信すると、両者を対応付けてサーバ状態格納部116に記憶させる。
ステップS202の次に、各サーバ121〜129は、終了フラグがオンになっているか否かを判定する(ステップS203)。終了フラグは、サーバに異常が発生したときにサーバ自身によってオンに設定されるフラグであり、終了フラグがオンになっているということは、サーバの正常時の処理を終了させることを意味する。ステップS203において、終了フラグがオフであれば、座標算出手段153および負荷状態通知手段158は、一定時間待機し(ステップS204)、ステップS201以降の処理を繰り返す。ステップS203において、終了フラグがオンであれば、処理を終了する。
次に、クライアント111が分散処理を要求し、マスタがワーカに分散処理を実行させる処理について説明する。図4は、この動作の流れを示すフローチャートである。クライアント111の処理依頼手段115は、分散処理の内容を記述した分散処理プログラムが分散データ処理システムのユーザにより編集されると、その分散処理プログラムをワークキュー112に送信することによって、分散処理を依頼する。ワークキュー112のサーバ割当手段119は、プログラムとして記述された分散処理要求をクライアント111から受信すると、サーバ状態格納部116に記憶された各サーバの負荷状態を参照して、マスタとして動作するサーバ、およびワーカとして動作するサーバを選択する(ステップS301)。
既に説明したように、サーバ割当手段119は、クライアント111からの要求において指定された分散処理で使用するサーバの台数分のサーバを、負荷状態の低い順に選択すればよい。このとき、サーバの物理的な制約や論理的な制約が定められているならば、その制約を満たすサーバを、指定された台数分選択すればよい。
続いて、ワークキュー112のサーバ割当手段119は、指定された台数分のサーバを選択できたか否かを判定する(ステップS302)。サーバを選択できていなければ(ステップS302におけるNO)、異常終了として処理を終了する。
サーバの選択に成功したならば(ステップS302におけるYES)、ワークキュー112のサーバ割当手段119は、例えば、選択したサーバのうちの1台をマスタに決定し、残りをワーカに決定する。そして、ワーカおよびマスタに定めた各サーバに対して、クライアントから受信した分散処理要求(プログラム)を送信する。このとき、サーバ割当手段119は、ワーカとなる各サーバの情報と、管理開始命令も送信する(ステップS303)。
続いて、マスタとされたサーバは、要求された処理を、ワーカとなる各サーバに振り分け、振り分けた処理を各ワーカに実行させる(ステップS304)。マスタとされたサーバは、ワーカに振り分けた処理の実行が成功していれば(ステップS305におけるYES)、処理を正常に終了し、処理の実行に失敗していれば(ステップS305におけるNO)、異常終了として処理を終了する。
図5は、マスタ(マスタとされたサーバ)のマスタ処理手段156のステップS304における処理経過の例を示す説明図である。マスタのマスタ処理手段156は、クライアントが送信した分散処理要求(プログラム)を解釈して、分散処理で使用するデータを記憶しているサーバの情報をデータ管理マスタ113から取得する(ステップS401)。すなわち、マスタ処理手段156は、受信したプログラムを解釈して、分散処理で使用する各データのデータ名を特定する。そして、その各データ名をデータ管理マスタ113に送信することにより、データ名が示すデータを記憶しているサーバを問い合わせる。データ管理マスタ113は、マスタから受信したデータ名に対応するサーバのアドレスをアドレス格納部117から読み込み、マスタに送信すればよい。
次に、マスタ処理手段156は、分散処理で使用するデータを記憶しているサーバの座標、およびワーカ(ワーカとされたサーバ)の情報を座標管理マスタ114に送信し、それらの各サーバの座標を問い合わせ、座標管理マスタ114からその各サーバの座標を取得する(ステップS402)。座標管理マスタ114は、マスタからサーバの情報を受信したならば、そのサーバの座標を座標格納部118から読み込み、マスタに送信すればよい。
次に、マスタ処理手段156は、分散処理で使用するデータを記憶しているサーバの座標、およびワーカの座標の組み合わせを作成し、作成した組毎に、座標間の距離(すなわち、通信遅延)を遅延推定手段157に算出させる。遅延推定手段157は、2つの座標からなる組を指定されると、その座標間のユークリッド距離を計算すればよい。この計算結果が通信遅延である。マスタ処理手段156は、組毎に通信遅延が求められると、組をなすサーバ間で送受信されるデータ量と通信遅延からネットワーク負荷を見積もる(ステップS403)。例えば、データ量と通信遅延の積をネットワーク負荷としてもよい。
マスタ処理手段156は、ネットワーク負荷の見積もり結果を参照して、クライアント111の要求に含まれる各処理を、どのワーカに実行させるのかを決定する(ステップS404)。
ステップS404では、例えば、どのワーカに、どのサーバ(ワーカとは限らない)のデータを入力データとして、要求された処理を実行させるのかを決定する。
具体例を挙げると、処理対象となるデータを記憶するワーカ以外のサーバが存在している場合、マスタ処理手段156は、そのサーバと、一つ一つの各ワーカとの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少のワーカに、そのサーバからデータを取得させ処理を実行させることを決定する。マスタ処理手段156は、決定した内容の実行命令を、そのワーカに送信し、命令を受信したワーカは、サーバからデータを読み込んで、処理を実行する。
あるいは、ワーカが処理を行って生成したデータを、他のワーカが入力データとして用いて処理を実行する場合、マスタ処理手段156は、先行の処理を実行するワーカと、一つ一つの他の各ワーカの組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少の他のワーカに、先行処理を完了したワーカからデータを取得させ次の処理を実行させることを決定する。マスタ処理手段156は、決定した内容の実行命令を、決定したワーカに送信し、命令を受信したワーカは、先行の処理を実行したワーカからデータを読み込んで、処理を実行する。
また、ワーカが、処理対象となるデータを記憶していて、そのデータ量が多い場合、マスタ処理手段156は、そのワーカと、一つ一つの他の各ワーカとの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少となる他のワーカを決定する。マスタ処理手段156は、決定した他のワーカに、データを記憶しているワーカからデータを取得して処理を実行する命令を送信する。この命令を受信したワーカは、データを読み込んで、処理を実行する。また、マスタ処理手段156は、データを記憶していたワーカに対して残りのデータを用いて処理を実行する命令を送信し、命令を受信したワーカは残りのデータを用いて処理を実行する。
ステップS404では、例えば、クライアント111の要求に含まれる処理の実行時に生成されたデータを取得すべきサーバが定められているときに、マスタ処理手段156は、どのワーカにその処理を実行させるのかを決定する。
具体例を挙げると、そのようなサーバが、クライアントからの要求内で定められている場合、マスタ処理手段156は、そのサーバと、一つ一つの各ワーカとの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延推定手段157に計算させる。そして、通信遅延からネットワーク負荷を計算し、ネットワーク負荷が最少のワーカに、処理を実行させ、その処理で生成したデータを、そのサーバに対して出力させることを決定する。マスタ処理手段156は、決定した内容の実行命令を、そのワーカに送信し、命令を受信したワーカは、処理を実行して、その際に生成したデータを、指定されたサーバに出力する。
マスタ処理手段156は、クライアント111が要求した処理の並列性や、データの入出力関係に応じて、処理を実行させるワーカを、順番に決定していく。
さらに、マスタ処理手段156は、ステップS404において、各ワーカの座標を入力として、クラスタリングアルゴリズムを用いてグルーピングを行って、集約ワーカを定めて、各ワーカが生成したデータを集約ワーカに取得させる命令を集約ワーカに送信してもよい。命令を受信した集約ワーカは、命令に従って各ワーカからデータを取得する。例えば、各ワーカに対してデータを要求し、要求に応じて他のワーカが送信したデータを受信することによってデータを集約ワーカに集約させる。
また、局所的なワーカ群中のいずれかのワーカにデータを集約させ、さらにそのデータを別のワーカが集約するように、段階的にデータを集約させていってもよい。
ステップS404の後、クライアント111から要求された分散処理が成功していれば(ステップS405におけるYES)、マスタ処理手段156は、処理を正常に終了する。一方、クライアント111から要求された分散処理が成功していなければ、異常終了として処理を終了する。
本実施形態では、通信遅延からネットワーク負荷を計算し、ネットワーク負荷の小さいワーカを選択する場合を示したが、処理を実行させる候補となるワーカが複数ある場合、それらのワーカについて、データを記憶しているサーバ(または、生成したデータを出力すべきサーバ)との通信遅延が最も小さいサーバを選択し、そのサーバに処理を実行させてもよい。
次に、本実施の形態の効果について説明する。
本発明によれば、各ワーカと他のサーバとの通信遅延を用いて、クライアントからの要求に含まれる各処理をどのワーカに実行させるのかを決定する。例えば、ワーカとサーバの座標から通信遅延を求め、その通信遅延とデータ量からワーカでの処理実行時におけるネットワーク負荷を求め、ネットワーク負荷の少ないワーカに処理を実行させる。従って、処理負荷の増加や通信遅延の増大を防止することができる。また、輻輳の発生を抑えることができる。また、不要な通信量の増加を防止でき、データの読み込みや書き込みなどを高速に行うことができる。
また、個々のサーバがそれぞれ座標算出手段153(図2参照)を備え、ネットワークにおける自装置の座標を算出する。そして、その座標を用いて、処理を実行させるワーカを上記のように決定する。従って、分散データ処理システムの導入に伴って、ネットワークのアドレス体系を変更したり再設計したりする必要がない。また、分散データ処理システムの他に別途ネットワークトポロジ管理システムを導入しなくてもよい。従って、既存のシステムに容易に本発明による分散データ処理システムを導入することができる。
また、各サーバが求めた自装置の座標を用いて、ワーカと他のサーバとの通信遅延を計算することができる。従って、ワーカと他のサーバとの組み合わせの最適性を評価することができる。上記の実施形態では、通信遅延を用いて計算したネットワーク負荷を用いて組み合わせの最適性を評価している。
図6は、本発明の実施例を示す説明図である。図1と同様の構成要素については、図1と同一の符号を付し、詳細な説明を省略する。
各計測用サーバ141〜143は、自身を含む各計測用サーバの通信遅延を計測する。計測用サーバ自身の通信遅延は0とすればよい。そして、各計測用サーバ141〜143のうちの任意の計測サーバが、他の各計測サーバから通信遅延の計測結果を収集する。そして、n台目の計測用サーバにおける計測結果を示すベクトルを行列Dにおける第n行として行列Dを決定し、主成分分析を行うことによって、各サーバが通信遅延から座標を求めるための情報を生成する。計測用サーバは、行列Dを決定後、SVD分解を行い、行列DをD=UWVの形式で表わし、行列Uから、予め定められた次元数の列を抽出し、その列からなる行列Uを求め、さらにその転置行列U を求める。この行列U は、通信遅延から座標を求めるための情報(座標軸情報)に相当する。図7は、座標軸情報の例を示す。以下、図7に例示する座標軸情報が生成されている場合を例にして説明する。
また、各サーバ121〜129の座標算出手段153(図2参照)は、各計測用サーバ141〜143の通信遅延を計測する。なお、通信遅延計測では、例えば、測用サーバ141〜143に対してPing等の測定用の通信データを送信し、その応答が返ってくるまでの時間を通信遅延として計測すればよい。サーバ121が計測した計測用サーバ141の通信遅延が2msであり、同様に、計測用サーバ142の通信遅延が5msであり、計測用サーバ143の通信遅延が6msであったとする。すると、サーバ121の座標算出手段513は、これらの計測結果(2ms、5ms、6ms)を要素とするベクトルをベクトルdとし、式(2)の計算を行って、サーバ121の座標を計算すればよい。なお、座標算出手段153は、行列Uを保持している計測用サーバに行列U を要求して、U を取得し、式(2)の計算を行えばよい。本例では、サーバ121の座標算出手段153は、2次元座標(4,22)を得る。他のサーバ122〜129も同様に自装置の座標を計算する。
各サーバ121〜129の座標算出手段153は計算した自装置の座標および識別情報を座標管理マスタ114に送信し、座標管理マスタ114はその情報を受信すると座標格納部118に記憶させる。図8は、座標格納部118に記憶された情報の例を示す。
また、各サーバ121〜129のデータ格納部151には、予めデータ名がA〜Iであるデータ131〜139が記憶されている。どのサーバにどのデータが記憶されているかを示す情報は、データ管理マスタ113のアドレス格納部117に記憶されている。図9は、アドレス格納部117に記憶された情報の例を示す。本例では、アドレスとは別にサーバの識別情報が定められ、図9に示すように、データ名と識別情報とアドレス(ここではIPアドレス)とを対応付けて記憶する場合を例にする。
また、各サーバ121〜129の負荷状態通知手段158(図2参照)は、自装置の負荷状態を示す情報をワークキュー112に送信し、ワークキュー112は、各サーバの負荷状態を示す情報をサーバ状態格納部116に記憶させる。図10は、サーバ状態格納部116に記憶された情報の例を示す。
図8〜図10に例示する情報が生成されている状態において、クライアント111が、データ名A,B,E,Fの各データに対してあるMap処理を施し、その結果をあるReduce処理でまとめる処理の実行をワークキュー112に要求したとする。このとき、6台のサーバを利用することを指定して、処理を要求していたとする。本例では、各サーバ121〜129の処理負荷の状態は、全て「未利用」であり同様である。ここでは、ワークキュー111のサーバ割当手段119が、サーバ名1,2,4,5,8,9であるサーバ121,122,124,125,128,129の6台を選択し、このうち、サーバ125をマスタとして用い、他の5台をワーカとして用いることに決定したとする。
割当手段119は、クライアント111からの要求(プログラム)を、選択した6台のサーバに送信し、マスタ125に管理開始命令、およびワーカとなる各サーバを通知する。図11は、この状態を模式的に示す説明図である。
マスタ125のマスタ処理手段156は、クライアント111からのプログラムに含まれるデータ名A,B,E,Fを指定して、そのデータを記憶しているサーバをデータ管理マスタ117に問い合わせる。そして、そのデータを記憶しているサーバの名称1,2,3,7をデータ管理マスタ117から受信する。
マスタ125のマスタ処理手段156は、そのサーバ名1,2,3,7のサーバと、ワークキュー112から通知されたサーバ名1,2,4,8,9のワーカについて、その各サーバの座標を座標管理マスタ114に問い合わせ、それらの各座標を座標管理マスタ114から受信する。本例では、マスタ処理手段156は、サーバ名1,2,3,7のサーバの座標として、それぞれ(4,22)、(2,15)、(15,3)、(32,22)を得る。また、各ワーカの座標として、それぞれ(4,22)、(2,15)、(22,5)、(30,20)、(24,10)を得る(図8参照)。
マスタ125のマスタ処理手段156は、これらの座標のうちの二つの座標の組み合わせを指定して、そのユークリッド距離を遅延推定手段157に計算させ、クライアントから要求された処理を実行するワーカを決定する。例えば、データAを記憶するサーバ3の座標は(15,3)と、利用可能な各ワーカの座標(4,22)、(2,15)、(22,5)、(30,20)、(24,10)との距離は、それぞれ約22,18,7,22,11となる。よって、マスタ処理手段156は、データAを入力データとするMap処理の実行をサーバ名4のワーカに実行させると決定する。ここでは、データAのMap処理について例示したが、他のデータに関しても同様に、処理を実行するワーカを決定する。マスタ処理手段156は、各ワーカを決定したならば、そのワーカに処理を実行させる。図12は、ワーカにマップ処理を実行させる状況を示す説明図である。図12に示す個々の丸はサーバを表し、図6と同一の符号を付して表している。黒色で示したサーバ121,122,124,128,129はワーカに定められたサーバであり、白色で示したサーバ123,125,126,127は、ワーカ以外のサーバである(後述の図13、図14においても同様である)。図12に示す例では、マスタ125のマスタ処理手段156は、ワーカ124にサーバ123からデータAを取得させてMap処理を実行させ、同様に、ワーカ128にサーバ127からデータEを取得させてMap処理を実行させる。また、ワーカ121,122に、それぞれ自装置に記憶しているデータF,Bを用いてMap処理を実行させる(図12参照)。
クライアントから受け付けた分散データ処理プログラムでは、各Map処理の出力をReduce処理の入力として用いることを規定しているとする。その場合、マスタ125のマスタ処理手段156は、ワーカとして利用可能なサーバ名1,2,4,8,9のワーカの中から、Map処理を実行したサーバとワーカとの通信遅延を用いて集約サーバを決定する。ここではサーバ名9のワーカを集約サーバに決定したとする。マスタ125のマスタ処理手段156は、決定した集約サーバに各サーバからデータを集約させる。図13は、集約ワーカにデータを集約させる状況を示す説明図である。図13に示す例では、マスタ125のマスタ処理手段156は、ワーカ129を集約ワーカとして、Reduce処理における集約をワーカ129に実行させる。
図13では集約を一度に行う場合を示したが、ワーカ群において局所的に集約を行って、その局所的に集約されたデータをさらに集約してもよい。図14は、このような段階的な集約の例を示す説明図である。マスタ125のマスタ処理手段156は、Map処理の出力データを有するワーカのうち、座標の近いワーカ同士をグループとして、そのグループ内のワーカに、グループ内における局所的なデータの集約を実行させてもよい。図14に示す例では、ワーカ121,122におけるMap処理の出力データを集約するReduce処理をワーカ122に実行させる。そして、ワーカ124,128におけるMap処理の出力データ、およびワーカ122におけるReduce処理の出力を集約する上位のReduce処理をワーカ129に実行させる
なお、本実施例では、ワークキュー112が分散データ処理で用いるサーバを決定する際に、データの近傍性を考慮していないが、ワークキュー112が、データの近傍性を考慮してそれらのサーバを決定してもよい。また、ワークキュー112がマスタとするサーバを決定するときにも、データの近傍性を考慮してもよい。
以下、本発明の概要を説明する。図15は、本発明の概要を示すブロック図である。本発明による分散データ処理システムは、データを処理する複数のデータ処理装置5(例えば、サーバ121〜129)と、座標管理装置1(例えば、座標管理マスタ114)と、割当装置2(例えば、ワークキュー112)とを備える。
座標管理装置1は、個々のデータ処理装置5がそれぞれ算出したデータ処理装置自身のコンピュータネットワークにおける座標を記憶する。
割当装置2は、クライアントから分散処理の要求を受信すると、各データ処理装置5の負荷状態に基づいて、要求された分散処理を実行するワーカと、ワーカが実行する分散処理を管理するマスタとをデータ処理装置5の中から決定する。割当装置2は、サーバ状態記憶手段3(例えば、サーバ状態格納部116)と、割当手段4(サーバ割当手段119)とを備える。サーバ状態記憶手段3は、各データ処理装置5の負荷状態を示す情報を記憶する。割当手段4は、クライアントから分散処理の要求を受信したときに、負荷状態を示す情報に基づいてワーカとなるデータ処理装置およびマスタとなるデータ処理装置を決定し、決定した各データ処理装置にクライアントからの要求を送信し、マスタに決定したデータ処理装置に分散処理の管理開始命令を送信する。
各データ処理装置5は、データ記憶手段6と、座標導出手段7と、遅延計算手段8と、マスタ処理手段9と、ワーカ処理手段10とを備える。
データ記憶手段6(例えば、データ格納部151)は、処理対象となるデータを記憶する。座標導出手段7(例えば、座標算出手段153)は、コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する。遅延計算手段8(例えば、遅延推定手段157)は、二つの座標が指定されると、その二つの座標間での通信遅延を計算する。
マスタ処理手段9(例えば、マスタ処理手段156)は、管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および各ワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延計算手段8に計算させ、通信遅延を用いてどのワーカに処理を実行させるかを決定し、そのワーカに処理の命令を送信する。ワーカ処理手段10(例えば、ワーカ処理手段512)は、自装置以外のデータ処理装置のマスタ処理手段から処理の命令を受けたときに、その処理を実行する。
そのような構成により、処理負荷の増加や通信遅延の増大を防止し、輻輳の発生を抑えることができる。また、既存のシステムに容易に本発明による分散データ処理システムを導入することができる。
また、上記の実施形態には、各データ処理装置5のマスタ処理手段9が、通信遅延を遅延計算手段8に計算させたときに、通信遅延の計算対象としたデータ処理装置間で送受信されるデータ量と、通信遅延とから、データ処理装置間でのネットワーク負荷を計算し、ネットワーク負荷に基づいて処理を実行させるワーカを決定する構成が開示されている。
また、上記の実施形態には、各データ処理装置5のマスタ処理手段9が、処理対象となるデータを記憶するワーカ以外のデータ処理装置が存在する場合に、そのデータ処理装置と各ワーカの座標の組み合わせを指定して、遅延計算手段8に通信遅延を計算させ、通信遅延を用いて、どのワーカに処理を実行させるかを決定し、そのワーカにデータを取得して処理を実行する命令を送信する構成が開示されている。
また、上記の実施形態には、各データ処理装置5のマスタ処理手段9が、一のワーカが記憶するデータ量が閾値よりも多い場合、一のワーカと他のワーカの座標の組み合わせを指定して、遅延計算手段8に通信遅延を計算させ、通信遅延を用いて、一のワーカとともにデータに対する処理を実行するワーカを決定し、決定したワーカに一のワーカのデータの一部を取得して処理を実行する命令を送信するとともに、一のワーカに残りのデータを用いて処理を実行する命令を送信する構成が開示されている。
また、上記の実施形態には、各データ処理装置5のマスタ処理手段9が、ワーカが処理を行って生成したデータを取得すべきデータ処理装置が存在する場合に、そのデータ処理装置と各ワーカの座標の組み合わせを指定して、遅延計算手段8に通信遅延を計算させ、通信遅延を用いて、どのワーカに処理を実行させるかを決定し、そのワーカに処理を実行して生成したデータをデータ処理装置に送信する命令を送信する構成が開示されている。
本発明は、例えば、データセンタ内や企業内の分散ストレージや分散ファイルシステム、分散データベースに格納された多量のデータを抽出するデータウェアハウスシステム等の分散データ処理システムとして利用可能である。
本発明の分散データ処理システムの実施形態を示すブロック図である。 各サーバの構成例を示すブロック図である。 負荷状態を示す情報や座標を登録する動作の処理経過の例を示すフローチャートである。 クライアントが分散処理を要求し、マスタがワーカに分散処理を実行させる動作の流れを示すフローチャートである。 ステップS304におけるマスタ処理手段の処理経過の例を示す説明図である。 本発明の実施例を示す説明図である。 座標軸情報の例を示す説明図である。 座標格納部に記憶された情報の例を示す説明図である。 アドレス格納部に記憶された情報の例を示す説明図である。 サーバ状態格納部に記憶された情報の例を示す説明図である。 ワークキューが選択した6台のサーバにクライアンからの要求を送信する状態を模式的に示す説明図である。 ワーカにMap処理を実行させる状況を示す説明図である。 集約ワーカにデータを集約させる状況を示す説明図である。 段階的な集約の例を示す説明図である。 本発明の概要を示すブロック図である。
符号の説明
111 クライアント
112 ワークキュー
113 データ管理マスタ
114 座標管理マスタ
115 処理依頼手段
116 サーバ状態格納部
117 アドレス格納部
118 座標格納部
119 サーバ割当手段
121〜129 サーバ
151 データ格納部
152 ワーカ処理手段
153 座標算出手段
156 マスタ処理手段
157 遅延推定手段

Claims (11)

  1. データを処理する複数のデータ処理装置と、
    個々のデータ処理装置がそれぞれ算出したデータ処理装置自身のコンピュータネットワークにおける座標を記憶する座標管理装置と、
    クライアントから分散処理の要求を受信すると、各データ処理装置の負荷状態に基づいて、要求された分散処理を実行するワーカと、ワーカが実行する分散処理を管理するマスタとをデータ処理装置の中から決定する割当装置とを備え、
    割当装置は、
    各データ処理装置の負荷状態を示す情報を記憶するサーバ状態記憶手段と、
    クライアントから分散処理の要求を受信したときに、前記負荷状態を示す情報に基づいてワーカとなるデータ処理装置およびマスタとなるデータ処理装置を決定し、決定した各データ処理装置にクライアントからの要求を送信し、マスタに決定したデータ処理装置に分散処理の管理開始命令を送信する割当手段とを含み、
    各データ処理装置は、
    処理対象となるデータを記憶するデータ記憶手段と、
    コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する座標導出手段と、
    二つの座標が指定されると、当該二つの座標間での通信遅延を計算する遅延計算手段と、
    前記管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および各ワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延計算手段に計算させ、当該通信遅延を用いてどのワーカに処理を実行させるかを決定し、当該ワーカに処理の命令を送信するマスタ処理手段と、
    自装置以外のデータ処理装置のマスタ処理手段から処理の命令を受けたときに、当該処理を実行するワーカ処理手段とを含む
    ことを特徴とする分散データ処理システム。
  2. 各データ処理装置のマスタ処理手段は、
    通信遅延を遅延計算手段に計算させたときに、通信遅延の計算対象としたデータ処理装置間で送受信されるデータ量と、前記通信遅延とから、前記データ処理装置間でのネットワーク負荷を計算し、ネットワーク負荷に基づいて処理を実行させるワーカを決定する
    請求項1に記載の分散データ処理システム。
  3. 各データ処理装置のマスタ処理手段は、
    処理対象となるデータを記憶するワーカ以外のデータ処理装置が存在する場合に、当該データ処理装置と各ワーカの座標の組み合わせを指定して、遅延計算手段に通信遅延を計算させ、当該通信遅延を用いて、どのワーカに処理を実行させるかを決定し、当該ワーカに前記データを取得して処理を実行する命令を送信する
    請求項1または請求項2に記載の分散データ処理システム。
  4. 各データ処理装置のマスタ処理手段は、
    一のワーカが記憶するデータ量が閾値よりも多い場合、前記一のワーカと他のワーカの座標の組み合わせを指定して、遅延計算手段に通信遅延を計算させ、当該通信遅延を用いて、前記一のワーカとともに前記データに対する処理を実行するワーカを決定し、決定したワーカに前記一のワーカのデータの一部を取得して処理を実行する命令を送信するとともに、前記一のワーカに残りのデータを用いて処理を実行する命令を送信する
    請求項1から請求項3のうちのいずれか1項に記載の分散データ処理システム。
  5. 各データ処理装置のマスタ処理手段は、
    ワーカが処理を行って生成したデータを取得すべきデータ処理装置が存在する場合に、当該データ処理装置と各ワーカの座標の組み合わせを指定して、遅延計算手段に通信遅延を計算させ、当該通信遅延を用いて、どのワーカに処理を実行させるかを決定し、当該ワーカに処理を実行して生成したデータを前記データ処理装置に送信する命令を送信する
    請求項1から請求項4のうちのいずれか1項に記載の分散データ処理システム。
  6. 分散データ処理システム内で処理を実行するデータ処理装置であって、
    処理対象となるデータを記憶するデータ記憶手段と、
    コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する座標導出手段と、
    二つの座標が指定されると、当該二つの座標間での通信遅延を計算する遅延計算手段と、
    クライアントが要求した分散処理の管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および処理の実行のために選択されたワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を遅延計算手段に計算させ、当該通信遅延を用いてどのワーカに処理を実行させるかを決定し、当該ワーカに処理の命令を送信するマスタ処理手段と、
    自装置以外のデータ処理装置から処理の命令を受けたときに、当該処理を実行するワーカ処理手段とを備える
    ことを特徴とするデータ処理装置。
  7. マスタ処理手段は、通信遅延を遅延計算手段に計算させたときに、通信遅延の計算対象としたデータ処理装置間で送受信されるデータ量と、前記通信遅延とから、前記データ処理装置間でのネットワーク負荷を計算し、ネットワーク負荷に基づいて処理を実行させるワーカを決定する
    請求項6に記載のデータ処理装置。
  8. データを処理する複数のデータ処理装置が、コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定し、
    割当装置が、クライアントから分散処理の要求を受信したときに、各データ処理装置の負荷状態を示す情報に基づいて、要求された分散処理を実行するワーカと、ワーカが実行する分散処理を管理するマスタとを決定し、決定した各データ処理装置にクライアントからの要求を送信し、マスタに決定したデータ処理装置に分散処理の管理開始命令を送信し、
    マスタとなるデータ処理装置が、前記管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各データ処理装置および各ワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を計算し、当該通信遅延を用いてどのワーカに処理を実行させるかを決定し、当該ワーカに処理の命令を送信し、
    ワーカとなるデータ処理装置が、マスタとなるデータ処理装置から前記処理の命令を受信したときに、当該処理を実行する
    ことを特徴とする分散データ処理方法。
  9. マスタとなるデータ処理装置は、通信遅延を計算したときに、通信遅延の計算対象としたデータ処理装置間で送受信されるデータ量と、前記通信遅延とから、前記データ処理装置間でのネットワーク負荷を計算し、ネットワーク負荷に基づいて処理を実行させるワーカを決定する
    請求項8に記載の分散データ処理方法。
  10. 分散データ処理システム内で処理を実行する各コンピュータに搭載される分散データ処理用プログラムであって、
    コンピュータに、
    コンピュータネットワークにおける自装置の位置を多次元の実数値で表した座標を、所定の装置との通信遅延の計測結果から決定する座標導出処理、
    クライアントが要求した分散処理の管理開始命令を受信したときに、クライアントが要求した分散処理に関連する各コンピュータおよび処理の実行のために選択されたワーカの座標から得られる二つの座標の組み合わせを指定して、指定した座標間における通信遅延を計算し、当該通信遅延を用いてどのワーカに処理を実行させるかを決定し、当該ワーカに処理の命令を送信するマスタ処理、および、
    自装置以外のコンピュータから処理の命令を受けたときに、当該処理を実行するワーカ処理
    を実行させるための分散データ処理用プログラム。
  11. コンピュータに、
    マスタ処理で、通信遅延を計算したときに、通信遅延の計算対象としたコンピュータ間で送受信されるデータ量と、前記通信遅延とから、前記コンピュータ間でのネットワーク負荷を計算し、ネットワーク負荷に基づいて処理を実行させるワーカを決定させる
    請求項10に記載の分散データ処理用プログラム。
JP2008268861A 2008-10-17 2008-10-17 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム Active JP5245711B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008268861A JP5245711B2 (ja) 2008-10-17 2008-10-17 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008268861A JP5245711B2 (ja) 2008-10-17 2008-10-17 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム

Publications (2)

Publication Number Publication Date
JP2010097489A true JP2010097489A (ja) 2010-04-30
JP5245711B2 JP5245711B2 (ja) 2013-07-24

Family

ID=42259114

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008268861A Active JP5245711B2 (ja) 2008-10-17 2008-10-17 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム

Country Status (1)

Country Link
JP (1) JP5245711B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244470A (ja) * 2009-04-09 2010-10-28 Ntt Docomo Inc 分散処理システム及び分散処理方法
WO2011161783A1 (ja) * 2010-06-23 2011-12-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
JP2014016700A (ja) * 2012-07-06 2014-01-30 Fujitsu Ltd 情報処理システム、情報処理システムの制御方法及び制御プログラム
WO2014020735A1 (ja) * 2012-08-02 2014-02-06 富士通株式会社 データ処理方法、情報処理装置およびプログラム
WO2014068980A1 (ja) 2012-11-01 2014-05-08 日本電気株式会社 分散データ処理システム、及び、分散データ処理方法
US8898422B2 (en) 2012-02-27 2014-11-25 Samsung Electronics Co., Ltd. Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration
US9124508B2 (en) 2011-05-23 2015-09-01 Nec Corporation Communication control device communication control system, communication control method and program
JP2018036978A (ja) * 2016-09-02 2018-03-08 日本電信電話株式会社 振分装置、通信システム及びデータ振分方法
JP2021517683A (ja) * 2018-04-05 2021-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理
US11277716B2 (en) 2019-04-11 2022-03-15 Fujitsu Limited Effective communication of messages based on integration of message flows among multiple services

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005310120A (ja) * 2004-03-23 2005-11-04 Hitachi Ltd 計算機システム及びタスク割当方法
JP2006031358A (ja) * 2004-07-15 2006-02-02 Ziosoft Inc ボリュームレンダリング等の画像処理システム
JP2007265013A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd クラスタ制御プログラム、クラスタ制御方法およびクラスタ制御装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005310120A (ja) * 2004-03-23 2005-11-04 Hitachi Ltd 計算機システム及びタスク割当方法
JP2006031358A (ja) * 2004-07-15 2006-02-02 Ziosoft Inc ボリュームレンダリング等の画像処理システム
JP2007265013A (ja) * 2006-03-28 2007-10-11 Fujitsu Ltd クラスタ制御プログラム、クラスタ制御方法およびクラスタ制御装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010244470A (ja) * 2009-04-09 2010-10-28 Ntt Docomo Inc 分散処理システム及び分散処理方法
WO2011161783A1 (ja) * 2010-06-23 2011-12-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
US9124508B2 (en) 2011-05-23 2015-09-01 Nec Corporation Communication control device communication control system, communication control method and program
US8898422B2 (en) 2012-02-27 2014-11-25 Samsung Electronics Co., Ltd. Workload-aware distributed data processing apparatus and method for processing large data based on hardware acceleration
JP2014016700A (ja) * 2012-07-06 2014-01-30 Fujitsu Ltd 情報処理システム、情報処理システムの制御方法及び制御プログラム
WO2014020735A1 (ja) * 2012-08-02 2014-02-06 富士通株式会社 データ処理方法、情報処理装置およびプログラム
WO2014068980A1 (ja) 2012-11-01 2014-05-08 日本電気株式会社 分散データ処理システム、及び、分散データ処理方法
US10296493B2 (en) 2012-11-01 2019-05-21 Nec Corporation Distributed data processing system and distributed data processing method
JP2018036978A (ja) * 2016-09-02 2018-03-08 日本電信電話株式会社 振分装置、通信システム及びデータ振分方法
JP2021517683A (ja) * 2018-04-05 2021-07-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理
JP7217580B2 (ja) 2018-04-05 2023-02-03 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理
US11277716B2 (en) 2019-04-11 2022-03-15 Fujitsu Limited Effective communication of messages based on integration of message flows among multiple services

Also Published As

Publication number Publication date
JP5245711B2 (ja) 2013-07-24

Similar Documents

Publication Publication Date Title
JP5245711B2 (ja) 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム
CN109144696B (zh) 一种任务调度方法、装置、电子设备及存储介质
US20140372611A1 (en) Assigning method, apparatus, and system
JP5664098B2 (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
WO2015078238A1 (en) Dispatching map matching tasks by cluster server in internet of vehicles
US20090077235A1 (en) Mechanism for profiling and estimating the runtime needed to execute a job
KR20160087706A (ko) 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
US8903981B2 (en) Method and system for achieving better efficiency in a client grid using node resource usage and tracking
CN109196807B (zh) 网络节点以及操作网络节点以进行资源分发的方法
CN114500355B (zh) 路由方法、片上网络、路由节点和路由装置
JP5035708B2 (ja) 並列計算機システム、ジョブサーバ、ジョブスケジューリング方法及びジョブスケジューリングプログラム
JP2005310120A (ja) 計算機システム及びタスク割当方法
JP2016024612A (ja) データ処理制御方法、データ処理制御プログラムおよびデータ処理制御装置
US11212174B2 (en) Network management device and network management method
JP6569692B2 (ja) 管理サーバ、通信システム、管理サーバの制御方法、及びプログラム
CN106571935B (zh) 一种资源调度的方法与设备
JP2006236123A (ja) ジョブ分散プログラム、ジョブ分散方法およびジョブ分散装置
US9467336B2 (en) Information processing system and management method thereof
US11294591B2 (en) Apparatus configured to create extended configuration proposal of storage system including multiple notes
CN115357401B (zh) 一种基于多数据中心的任务调度与可视化方法和系统
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法
WO2015019488A1 (ja) 管理システム及びその管理システムによるイベント解析方法
CN117093335A (zh) 分布式存储系统的任务调度方法及装置
KR101393237B1 (ko) 그리드 컴퓨팅에서 동적 유효자원 재배치 기반 작업 할당 장치 및 방법
JP6219771B2 (ja) 負荷分散装置、負荷分散方法、および、負荷分散システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110908

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130312

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130325

R150 Certificate of patent or registration of utility model

Ref document number: 5245711

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160419

Year of fee payment: 3