JP5850054B2 - 分散処理管理サーバ、分散システム、及び分散処理管理方法 - Google Patents

分散処理管理サーバ、分散システム、及び分散処理管理方法 Download PDF

Info

Publication number
JP5850054B2
JP5850054B2 JP2013526975A JP2013526975A JP5850054B2 JP 5850054 B2 JP5850054 B2 JP 5850054B2 JP 2013526975 A JP2013526975 A JP 2013526975A JP 2013526975 A JP2013526975 A JP 2013526975A JP 5850054 B2 JP5850054 B2 JP 5850054B2
Authority
JP
Japan
Prior art keywords
data
processing
server
information
unit
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.)
Active
Application number
JP2013526975A
Other languages
English (en)
Other versions
JPWO2013018916A1 (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.)
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 JP2013526975A priority Critical patent/JP5850054B2/ja
Publication of JPWO2013018916A1 publication Critical patent/JPWO2013018916A1/ja
Application granted granted Critical
Publication of JP5850054B2 publication Critical patent/JP5850054B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、データが記憶されるサーバとそのデータを処理するサーバとが分散配置されているシステムにおけるデータの分散処理の管理技術に関する。
非特許文献1乃至3は、複数の計算機に格納されたデータを処理させる計算サーバを決定する分散システムを開示する。この分散システムは、個々のデータを格納する計算機から最も近傍な利用可能計算サーバを逐次決定することによって、全てのデータの通信経路を決定する。
特許文献1は、一台の計算機に格納されたデータを一台のクライアントに転送するに際して、転送処理に用いられる中継サーバを移動させるシステムを開示する。このシステムは、データを転送するのに要する各計算機と各クライアントとの間のデータ転送時間を算出し、算出したデータ転送時間に基づいて中継サーバを移動させる。
特許文献2は、ファイル転送元マシンからファイル転送先マシンへのファイル転送時に、そのファイルが転送される転送経路の回線速度と負荷状況に応じて、そのファイルを分割し、その分割されたファイルを転送するシステムを開示する。
特許文献3は、様々な速度が指定されるストリーム入出力要求に対して、使用効率の良い資源の割り当てを短時間で決定するストリーム処理装置を開示する。
特許文献4は、複数の計算機に対して、データを格納したファイルシステムにアクセスする複数のI/Oノードの占有率を、ジョブの実行過程に応じて動的に変更するシステムを開示する。
Jeffrey Dean and 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日 Sanjay Ghemawat,Howard Gobioff,and Shun−Tak Leung,"The Google File System″,Proceedings of the nineteenth ACM symposium on Operatingsystems principles(SOSP’03),2003年10月19日 西田圭介,Googleを支える技術,p.74、p.136−p.163,2008年4月25日
特開平8−202726号公報 特許第3390406号公報 特開平8−147234号公報 特許第4569846号公報
上記特許文献及び非特許文献の技術は、データを記憶する複数のデータサーバと、当該データを処理可能な複数の処理サーバと、が分散配置されるシステムに於いて、単位時間当たりの全処理サーバにおける総処理データ量を最大化するデータの転送経路を決定するための情報を生成できない。
その理由は以下の通りである。特許文献1及び2の技術は、一対一のデータ転送における転送時間を最小化するに過ぎない。非特許文献1乃至3の技術は、一対一のデータ転送時間を逐次的に最小化するに過ぎない。特許文献3の技術は、一対多のデータ転送技術を開示するに過ぎない。特許文献4の技術は、ファイルシステムにアクセスするために必要なI/Oノードの占有率を決定するに過ぎない。
つまり、前述の問題点の理由は、上記特許文献及び非特許文献に記載された技術が、いずれも複数のデータサーバから複数の処理サーバにデータが転送されるシステムにおける、単位時間当たりの処理サーバ全体の総処理データ量を考慮していないからである。
本発明の目的は、上記課題を解決する分散処理管理サーバ、分散システム、記憶媒体及び分散処理管理方法を提供することである。
本発明の一形態における第一の分散処理管理サーバは、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、を備える。
本発明の一形態における第一の分散システムは、データを記憶するデータサーバと当該データを処理する処理サーバと、分散処理管理サーバとを備え、分散処理管理サーバは、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段と、を備え、処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する処理実行手段を備え、データサーバは、データを格納する処理データ格納手段を備える。
本発明の一形態における第一の分散処理管理方法は、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する。
本発明の一形態における第一の分散処理方法は、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成し、前記生成された前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信し、処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する。
本発明の一形態における第一のコンピュータが読み取り可能な記憶媒体は、コンピュータに、ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成する処理と、一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する処理と、を実行させるための分散処理管理プログラムを格納する。
本発明は、データを記憶する複数のデータサーバと当該データを処理する複数の処理サーバとが分散配置されるシステムに於いて、単位時間当たりにおける全処理サーバの総処理データ量を最大化するデータ転送経路を決定するための情報を生成できる。
図1Aは、第1の実施形態における分散システム350の構成を示す概要図である。 図1Bは、分散システム350の構成例を示す図である。 図2Aは、分散システム350の非効率な通信例を示す図である。 図2Bは、分散システム350の効率的な通信例を示す図である。 図3は、各記憶用ディスク及びネットワークの帯域を表す表220の一例を示す図である。 図4は、分散処理管理サーバ300、ネットワークスイッチ320、処理サーバ330及びデータサーバ340の構成を示す図である。 図5は、データ所在格納部3070に格納される情報を例示する図である。 図6は、入出力通信路情報格納部3080に格納される情報を例示する図である。 図7は、サーバ状態格納部3060に格納される情報を例示する図である。 図8Aは、モデル生成部301が出力するモデル情報の表を例示する図である。 図8Bは、モデル生成部301が生成するモデル情報の一例を示す概念図である。 図9は、最適配置計算部302が出力する、データフローFiを構成する経路情報と流量との対応表を例示する図である。 図10は、処理割当部303が決定する決定情報の構成を例示する図である。 図11は、分散システム350の全体動作を示すフローチャートである。 図12は、ステップS401における分散処理管理サーバ300の動作を示すフローチャートである。 図13は、ステップS404における分散処理管理サーバ300の動作を示すフローチャートである。 図14は、ステップS404内のステップS404−10における分散処理管理サーバ300の動作を示すフローチャートである。 図15は、ステップS404内のステップS404−20における分散処理管理サーバ300の動作を示すフローチャートである。 図16は、ステップS404内のステップS404−30における分散処理管理サーバ300の動作を示すフローチャートである。 図17は、ステップS404内のステップS404−40における分散処理管理サーバ300の動作を示すフローチャートである。 図18Aは、ステップS404−40内のステップS404−430における分散処理管理サーバ300の動作を示すフローチャートである。 図18Bは、ステップS404−40内のステップS404−430における分散処理管理サーバ300の動作を示すフローチャートである。 図19は、ステップS404内のステップ404−50における分散処理管理サーバ300の動作を示すフローチャートである。 図20は、ステップS405における分散処理管理サーバ300の動作を示すフローチャートである。 図21は、ステップS406における分散処理管理サーバ300の動作を示すフローチャートである。 図22は、第2の実施の形態のステップS404−20における分散処理管理サーバ300の動作を示すフローチャートである。 図23は、第2の実施の形態におけるステップS404−30における分散処理管理サーバ300の動作を示すフローチャートである。 図24は、第2の実施の形態におけるステップS404−40における分散処理管理サーバ300の動作を示すフローチャートである。 図25は、第2の実施の形態におけるステップS406における分散処理管理サーバ300の動作を示すフローチャートである。 図26は、第3の実施の形態におけるステップS404−50における分散処理管理サーバ300の動作を示すフローチャートである。 図27は、第4の実施の形態における分散システム350の構成を示すブロック図である。 図28Aは、ジョブ情報格納部3040に格納される構成情報を例示する図である。 図28Bは、帯域制限情報格納部3090に格納される構成情報を例示する図である。 図28Cは、帯域制限情報格納部3100に格納される構成情報を例示する図である。 図29は、第4の実施の形態におけるステップS401における分散処理管理サーバ300の動作を示すフローチャートである。 図30は、第4の実施の形態におけるステップS404における分散処理管理サーバ300の動作を示すフローチャートである。 図31は、第4の実施の形態におけるステップS404−10−1における分散処理管理サーバ300の動作を示すフローチャートである。 図32は、第5の実施の形態における分散システム350の構成を示すブロック図である。 図33は、第5の実施の形態のステップS406における、分散処理管理サーバ300の動作を示すフローチャートである。 図34は、第6の実施の形態における分散処理管理サーバ600の構成を示すブロック図である。 図35は、処理サーバの識別子の集合の一例を示す図である。 図36は、データ所在情報の集合の一例を示す図である。 図37は、入出力通信路情報の集合の一例を示す図である。 図38は、第6の実施の形態における分散処理管理サーバ600とその周辺装置のハードウェア構成を示す図である。 図39は、第6の実施の形態における分散処理管理サーバ600の動作の概要を示すフローチャートである。 図40は、第6の実施の形態の第1の変形例における分散システム650の構成を示す図である。 図41は、第1の実施の形態の具体例で使用される分散システム350の構成を示すブロック図である。 図42は、第1の実施の形態の具体例において、分散処理管理サーバ300が備える、サーバ状態格納部3060に格納される情報の一例を示す図である。 図43は、第1の実施の形態の具体例において、分散処理管理サーバ300が備える、入出力通信路情報格納部3080に格納される情報の一例を示す図である。 図44は、第1の実施の形態の具体例において、分散処理管理サーバ300が備える、データ所在格納部3070に格納される情報の一例を示す図である。 図45は、第1の実施の形態の具体例において、モデル生成部301が生成する、モデル情報の表を示す図である。 図46は、第1の実施の形態の具体例において、図45が示すモデル情報の表が示すネットワーク(G,u,s,t)の概念図である。 図47Aは、第1の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図47Bは、第1の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図47Cは、第1の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図47Dは、第1の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図47Eは、第1の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図47Fは、第1の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図47Gは、第1の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図48は、第1の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。 図49は、図48のデータフロー情報に基づいて決定される、データ送受信の一例を示す図である。 図50は、第2の実施の形態の具体例で使用される分散システム350の構成を示す図である。 図51は、分散処理管理サーバ300が備える、データ所在格納部3070に格納される情報の一例を示す図である。 図52は、第2の実施の形態の具体例でモデル生成部301が生成するモデル情報の表を示す図である。 図53は、図52が示すモデル情報の表が示すネットワーク(G,u,s,t)の概念図である。 図54Aは、第2の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図54Bは、第2の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図54Cは、第2の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図54Dは、第2の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図54Eは、第2の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図54Fは、第2の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図54Gは、第2の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図55は、第2の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。 図56は、図55のデータフロー情報に基づいて決定される、データ送受信の一例を示す図である。 図57は、分散処理管理サーバ300が備える、サーバ状態格納部3060に格納される情報の一例を示す図である。 図58は、第3の実施の形態の具体例でモデル生成部301が生成する、モデル情報の表を示す図である。 図59は、図58が示すモデル情報の表が示すネットワーク(G,u,s,t)の概念図である。 図60Aは、第3の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図60Bは、第3の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図60Cは、第3の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図60Dは、第3の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図60Eは、第3の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図60Fは、第3の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図60Gは、第3の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図61は、第3の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。 図62は、図61のデータフロー情報に基づいて決定される、データ送受信の一例を示す図である。 図63は、第4の実施の形態の具体例で使用される分散システム350の構成を示す図である。 図64は、分散処理管理サーバ300が備える、サーバ状態格納部3060に格納される情報の一例を示す図である。 図65は、分散処理管理サーバ300が備える、ジョブ情報格納部3040に格納される情報の一例を示す図である。 図66は、分散処理管理サーバ300が備える、データ所在格納部3070に格納される情報の一例を示す図である。 図67は、第4の実施の形態の具体例でモデル生成部301が生成するモデル情報の表を示す図である。 図68は、図67が示すモデル情報の表が示すネットワーク(G,l,u,s,t)の概念図である。 図69Aは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。 図69Bは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。 図69Cは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。 図69Dは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。 図69Eは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。 図69Fは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。 図70Aは、第4の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図70Bは、第4の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図70Cは、第4の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図70Dは、第4の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図70Eは、第4の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図70Fは、第4の実施の形態の具体例において、最大流問題におけるフロー増加法によって、目的関数の最大化を行った場合を例示する図である。 図71は、第4の実施の形態の具体例において、目的関数の最大化の計算の結果、得られるデータフロー情報を示す図である。 図72は、図71のデータフロー情報に基づいて決定される、データ送受信の一例を示す。 図73は、第5の実施の形態の具体例において、入出力通信路情報格納部3080が格納する情報の一例を示す。
次に、本発明を実施するための形態について図面を参照して詳細に説明する。なお、各図面及び明細書記載の各実施の形態において、同様の機能を備える構成要素には同様の符号が与えられている。
[第1の実施の形態]
はじめに、第1の実施の形態における分散システム350の構成と動作との概要、及び、分散システム350の、関連技術との相違点を説明する。
図1Aは、第1の実施の形態における分散システム350の構成を示す概要図である。分散システム350は、分散処理管理サーバ300、ネットワークスイッチ320、複数の処理サーバ330#1ないし330#n、及び、複数のデータサーバ340#1ないし340#nを包含し、それぞれがネットワーク370によって接続される。分散システム350は、クライアント360や他のサーバ399を包含していても良い。
本明細書において、各データサーバ340#1ないし340#nは総称してデータサーバ340とも表される。各処理サーバ330#1ないし330#nは総称して処理サーバ330とも表される。
データサーバ340は、処理サーバ330による処理の対象となるデータを記憶している。処理サーバ330は、データサーバ340からデータを受信し、受信したデータに対して処理プログラムを実行することで、当該データを処理する。
クライアント360は、データ処理開始を分散処理管理サーバ300に要求するための情報である要求情報を送信する。要求情報は、処理プログラムとその処理プログラムが使用するデータを含む。このデータとは、例えば、論理データ集合、部分データ又はデータ要素、若しくはそれらの集合である。論理データ集合、部分データ又はデータ要素については後述される。分散処理管理サーバ300は、データサーバ340が記憶するデータのうちの一以上のデータが処理される処理サーバ330をデータ毎に決定する。そして分散処理管理サーバ300は、データを処理する処理サーバ330ごとに、そのデータとそのデータが記憶されているデータサーバ340とを示す情報及び単位時間当たりのデータ処理量を示す情報を包含する決定情報を生成し、その決定情報を出力する。データサーバ340及び処理サーバ330は、当該決定情報に基づいてデータの送受信を行う。処理サーバ330は受信したデータを処理する。
ここで、分散処理管理サーバ300、処理サーバ330、データサーバ340、クライアント360は、それぞれ専用の装置であっても汎用のコンピュータであっても良い。また、一台の装置又はコンピュータが、分散処理管理サーバ300、処理サーバ330、データサーバ340、クライアント360のうちの複数の機能を有しても良い。以下、一台の装置及びコンピュータは総称して、コンピュータ等とも表される。また、分散処理管理サーバ300、処理サーバ330、データサーバ340、及びクライアント360は総称して、分散処理管理サーバ300等とも表される。多くの場合、一台のコンピュータ等が処理サーバ330及びデータサーバ340の両者として機能する。
図1B、図2A、及び、図2Bは、分散システム350の構成例を示す図である。これらの図に於いて、処理サーバ330及びデータサーバ340は、コンピュータとして記述されている。ネットワーク370は、スイッチを経由するデータ送受信経路として記述されている。分散処理管理サーバ300は明記されていない。
図1Bにおいて、分散システム350は、例えば、コンピュータ111及び112と、それらを接続するスイッチ101乃至103とを包含する。コンピュータ及びスイッチは、ラック121及び122に収容されている。ラック121及び122は、データセンタ131及び132に収容されている。データセンタ131及び132の間は、拠点間通信網141にて接続されている。
図1Bは、スイッチとコンピュータをスター型に接続した分散システム350を例示する。図2A及び図2Bは、カスケード接続されたスイッチにより構成された分散システム350を例示する。
図2A及び図2Bは、それぞれ、データサーバ340と処理サーバ330との間のデータ送受信の一例を示す。両図に於いて、コンピュータ207乃至209がデータサーバ340として機能し、コンピュータ208と209とが処理サーバ330としても機能する。なお、本図に於いて、例えばコンピュータ221が、分散処理管理サーバ300として機能している。
図2A及び図2Bに於いて、スイッチ202及び203で接続されたコンピュータのうち、コンピュータ208及び209以外のコンピュータは、他の処理を実行中であり、更なるデータ処理の利用は、不可能である。利用不可能なコンピュータ207は、処理対象のデータ212を記憶用ディスク205に記憶している。一方、更なるデータ処理の利用が可能なコンピュータ208は、処理対象のデータ210及び211を記憶用ディスク204に記憶している。同様に、利用可能なコンピュータ209は、処理対象のデータ213を記憶用ディスク206に記憶している。また、利用可能なコンピュータ208は、処理プロセス214及び215を並列に実行している。そして、利用可能なコンピュータ209は、処理プロセス216を実行している。各記憶用ディスク及びネットワークの可用帯域は、図3に示される表220の通りである。
すなわち、図3における表220を参照すると、各記憶用ディスクの可用帯域は100MB/sであり、ネットワークの可用帯域は100MB/sである。本例において、記憶用ディスクに接続されるデータ送受信経路のそれぞれに対して、前述の記憶用ディスクの可用帯域が均等に割り当てられると仮定する。また、本例においてスイッチに接続されるデータ送受信経路のそれぞれに対して、前述のネットワークの可用帯域が均等に割り当てられると仮定する。
図2Aにおいて、処理対象のデータ210は、データ送受信経路217を介して伝送されて、利用可能なコンピュータ208で処理される。処理対象のデータ211は、データ送受信経路218を介して伝送されて、利用可能なコンピュータ208で処理される。処理対象のデータ213は、データ送受信経路219を介して伝送されて、利用可能なコンピュータ209で処理される。処理対象のデータ212は、どの処理プロセスにも割り当てられず、待機状態となっている。
一方、図2Bにおいては、処理対象のデータ210は、データ送受信経路230を介して伝送されて、利用可能なコンピュータ208で処理される。処理対象のデータ212は、データ送受信経路231を介して伝送されて、利用可能なコンピュータ208で処理される。処理対象のデータ213は、データ送受信経路232を介して伝送されて、利用可能なコンピュータ209で処理される。処理対象のデータ211は、どの処理プロセスにも割り当てられず、待機状態となっている。
図2Aにおけるデータ送受信の総スループットは、データ送受信経路217の50MB/s、データ送受信経路218の50MB/s、及び、データ送受信経路219の100MB/sの和となり、200MB/sである。一方、図2Bにおけるデータ送受信の総スループットは、データ送受信経路230の100MB/s、データ送受信経路231の100MB/s、及び、データ送受信経路232の100MB/sの和となり、300MB/sである。図2Bにおけるデータ送受信は、図2Aにおけるデータ送受信に較べて総スループットが高く、効率的である。
各処理対象のデータについて逐次的に、構成的な距離(例えば、ホップ数)に基づいてデータ送受信を行うコンピュータを決定するシステムは、図2Aに示されたような非効率な送受信を行うことがある。この理由は、本発明に関連する他のシステムが、記憶用ディスクやネットワークの可用帯域を考慮せずに、構成的な距離のみでデータ送受信経路を決定するからである。
本実施形態の分散システム350は、図2A及び図2Bに例示した状況において、図2Bで示した効率的なデータ送受信を行う可能性を高める。
以下、第1の実施の形態における分散システム350が備える各構成要素について説明する。
図4は、分散処理管理サーバ300、ネットワークスイッチ320、処理サーバ330及びデータサーバ340の構成を示す図である。一台のコンピュータ等が、分散処理管理サーバ300等のうちの複数の機能を有するとき、当該コンピュータ等が有する構成は、例えば、分散処理管理サーバ300等の複数の構成のそれぞれの少なくとも一部を包含したものとなる。ここで、分散処理管理サーバ300、ネットワークスイッチ320、処理サーバ330及びデータサーバ340は総称して分散処理管理サーバ300等とも表される。この場合、コンピュータ等は、分散処理管理サーバ300等の間で共通的な構成要素を重複して持たずに共用しても良い。
例えば、あるサーバが、分散処理管理サーバ300と、処理サーバ330として動作する場合、当該サーバの構成は、例えば、分散処理管理サーバ300と処理サーバ330との各々の構成の少なくとも一部を包含したものとなる。
<処理サーバ330>
処理サーバ330は、処理サーバ管理部331と、処理実行部332と、処理プログラム格納部333と、データ送受信部334とを包含する。
===処理サーバ管理部331===
処理サーバ管理部331は、分散処理管理サーバ300からの処理割り当てに従って、処理実行部332に処理を実行させたり、現在実行中の処理の状態を管理したりする。
具体的には、処理サーバ管理部331は、データ要素の識別子とそのデータ要素の格納先であるデータサーバ340の処理データ格納部342の識別子とを含む決定情報を受信する。そして処理サーバ管理部331は、受信した決定情報を処理実行部332に渡す。決定情報は、処理実行部332ごとに生成されても良い。また、決定情報は処理実行部332を示すデバイスIDを含み、処理サーバ管理部331は、決定情報に含まれる識別子で識別される処理実行部332に決定情報を渡しても良い。後述の処理実行部332は、受け取った決定情報に含まれるデータ要素の識別子とそのデータ要素の格納先であるデータサーバ340の処理データ格納部342の識別子とに基づいて、データサーバ340から処理対象のデータを受信し、そのデータに対し処理を実行する。決定情報の詳細の説明は、後述される。
また、処理サーバ管理部331は、処理実行部332がデータを処理する際に用いる処理プログラムの実行状態に関する情報を格納する。そして、処理サーバ管理部331は、この処理プログラムの実行状態に関する情報を、当該処理プログラムの実行状態の変化に応じて更新する。処理プログラムの実行状態とは、例えば以下の各状態がある。例えば、処理プログラムの実行状態として、データを処理実行部332に割り当てる処理は終了したが、当該処理実行部332は、そのデータの処理を実行していない状態を示す「実行前状態」がある。また、処理プログラムの実行状態として、処理実行部332がそのデータを実行している状態を示す「実行中状態」がある。また、処理プログラムの実行状態として、処理実行部332がそのデータの処理を完了した状態を示す「実行完了状態」がある。処理プログラムの実行状態は、処理実行部332に割り当てられたデータの総量に対する、その処理実行部332による処理済みのデータ量の割合に基づいて定められる状態であっても良い。
処理サーバ管理部331は、分散処理管理サーバ300に対して、処理サーバ330のディスク可用帯域やネットワーク可用帯域等の状態情報を送信する。
===処理実行部332===
処理実行部332は、処理サーバ管理部331の指示に従って、データ送受信部334を介して、データサーバ340から処理対象のデータを受信し、そのデータに対し処理を実行する。具体的には、処理実行部332は、処理サーバ管理部331から受け取ったデータ要素の識別子とそのデータ要素の格納先であるデータサーバ340の処理データ格納部342の識別子とを受け取る。そして処理実行部332は、受け取った処理データ格納部342の識別子に対応するデータサーバ340に対し、データ送受信部334を介して受け取ったデータ要素の識別子が示すデータ要素の送信を要求する。具体的には処理実行部332は、データ要素の送信を要求するための要求情報を送信する。そして処理実行部332は、要求情報に基づいて送信されるデータ要素を受信し、そのデータに対し処理を実行する。データ要素についての説明は、後述される。
処理実行部332は、複数の処理を並列に実行するために、処理サーバ330内に複数存在しても良い。
===処理プログラム格納部333===
処理プログラム格納部333は、他のサーバ399又はクライアント360から処理プログラムを受信し、その処理プログラムを格納する。
===データ送受信部334===
データ送受信部334は、他の処理サーバ330やデータサーバ340とデータの送受信を行う。
処理サーバ330は、処理対象のデータを、分散処理管理サーバ300から指定されたデータサーバ340から、データサーバ340のデータ送受信部343、ネットワークスイッチ320のデータ送受信部322、及び、処理サーバ330のデータ送受信部334を介して受信する。そして処理サーバ330の処理実行部332は、受信された処理対象のデータを処理する。処理サーバ330がデータサーバ340と同一のコンピュータ等である場合、処理サーバ330は、処理対象のデータを、処理データ格納部342から直接受信しても良い。また、データサーバ340のデータ送受信部343と処理サーバ330のデータ送受信部334とが、ネットワークスイッチ320のデータ送受信部322を介さず、直接通信しても良い。
<データサーバ340>
データサーバ340は、データサーバ管理部341と、処理データ格納部342とを包含する。
===データサーバ管理部341===
データサーバ管理部341は、分散処理管理サーバ300に対して、処理データ格納部342が格納するデータの所在情報、及び、データサーバ340のディスク可用帯域やネットワーク可用帯域等を含む状態情報を送信する。処理データ格納部342は、データサーバ340において一意に識別されるデータを格納する。
===処理データ格納部342===
処理データ格納部342は、処理サーバ330に処理されるデータを格納する記憶媒体として、例えばハードディスクドライブ(Hard Disc Drive;HDD)やソリッドステートドライブ(Solid State Drive;SSD)、USBメモリ(Univrsal Serial Bus flash drive)、RAM(Random Access Memory;RAM)ディスクなどを一台又は複数台備える。処理データ格納部342に格納されるデータは、処理サーバ330が出力したもの又は出力中のものであっても良い。また、処理データ格納部342に格納されるデータは、処理データ格納部342が他のサーバ等から受信したものでも、処理データ格納部342が記憶媒体等から読み込んだものでも良い。
===データ送受信部343===
データ送受信部343は、他の処理サーバ330や他のデータサーバ340とデータの送受信を行う。
<ネットワークスイッチ320>
ネットワークスイッチ320は、スイッチ管理部321とデータ送受信部322とを備える。
===スイッチ管理部321===
スイッチ管理部321は、ネットワークスイッチ320が接続している通信路(データ送受信経路)の可用帯域等の情報を、データ送受信部322から取得し、分散処理管理サーバ300に送信する。
===データ送受信部322===
データ送受信部322は、処理サーバ330及びデータサーバ340の間で送受信されるデータを中継する。
<分散処理管理サーバ300>
分散処理管理サーバ300は、データ所在格納部3070、サーバ状態格納部3060、入出力通信路情報格納部3080、モデル生成部301、最適配置計算部302、及び、処理割当部303を包含する。
===データ所在格納部3070===
データ所在格納部3070は、論理データ集合の名称(論理データ集合名)に対して、その論理データ集合に含まれる部分データをそれぞれ格納しているデータサーバ340の処理データ格納部342の識別子を一以上対応付けて、格納する。
論理データ集合は、一以上のデータ要素の集合である。論理データ集合は、データ要素の識別子の集合、一以上のデータ要素を含むデータ要素群の識別子の集合、ある共通条件を満足するデータの集合として定義されても良いし、これらの集合の和集合や積集合として定義されても良い。論理データ集合は、その論理データ集合の名称によって、分散システム350において一意に識別される。すなわち論理データ集合の名称は、分散システム350において一意に識別されるように、その論理データ集合に対して設定される。
データ要素は、そのデータ要素を処理するための、一つの処理プログラムの入力又は出力における最小単位となる。
部分データは、一以上のデータ要素の集合である。そして部分データは論理データ集合を構成する要素でもある。
論理データ集合は、ディレクトリやデータの構造を規定する構造プログラムにおいて、識別名によって明示的に指定されても、指定した処理プログラムの出力結果等、他の処理結果に基づいて指定されても良い。構造プログラムは、論理データ集合そのものを指す情報、又はその論理データ集合を構成するデータ要素を規定する情報である。構造プログラムは、あるデータ要素又は論理データ集合を示す情報(名称や識別子)を入力として受け取る。そして構造プログラムは、受け取った入力に対応するデータ要素又は論理データ集合が格納されているディレクトリ名、及び、当該データ要素又は論理データ集合を構成するファイルを示すファイル名を出力する。構造プログラムは、ディレクトリ名又はファイル名の一覧表などであっても良い。
論理データ集合とデータ要素とは、典型的にはファイルとそのファイル内のレコードとにそれぞれ対応するが、この対応に限られない。
処理プログラムが引数として受け取る情報の単位が、分散ファイルシステム(Distributed File System)における個々の分散ファイルである場合、データ要素は各分散ファイルである。この場合、論理データ集合は、分散ファイルの集合である。そして論理データ集合は、例えば、分散ファイルシステム上でのディレクトリ名、複数の分散ファイル名が列挙された情報、あるいは、分散ファイル名に対するある共通条件によって特定される。すなわち、論理データ集合の名称は、分散ファイルシステム上でのディレクトリ名、複数の分散ファイル名が列挙された情報、あるいは、分散ファイル名に対するある共通条件であっても良い。論理データ集合は、複数のディレクトリ名が列挙された情報によって特定されても良い。すなわち論理データ集合の名称は、複数のディレクトリ名が列挙された情報であっても良い。
処理プログラムが引数として受け取る情報の単位が、行又はレコードである場合、データ要素は、分散ファイル中の各行又は各レコードとなる。この場合、論理データ集合は、例えば、分散ファイルである。
処理プログラムが引数として受け取る情報の単位が、リレーショナルデータベースにおけるテーブルの「行」である場合、データ要素は、テーブル中の各行となる。この場合、論理データ集合は、あるテーブルの集合から所定の検索によって得られる行の集合、又は、当該あるテーブルの集合からある属性の範囲検索によって得られた行の集合などになる。
論理データ集合がC++やJava(登録商標)等のプログラムのMapやVector等のコンテナであって、データ要素がコンテナの要素であってもよい。さらに、論理データ集合が行列であって、データ要素が、行、列、あるいは行列要素であっても良い。
この論理データ集合とデータ要素との関係は、処理プログラムの内容によって規定される。この関係は、構造プログラムに記述されていても良い。
論理データ集合及びデータ要素が何れの場合であっても、論理データ集合が指定される、又は、一以上のデータ要素が登録されることにより、処理対象の論理データ集合が定まる。処理対象の論理データ集合の名称(論理データ集合名)は、その論理データ集合に含まれるデータ要素の識別子と当該データ要素を格納するデータサーバ340の処理データ格納部342の識別子と対応付けられて、データ所在格納部3070に格納される。
各論理データ集合は、複数の部分集合(部分データ)に分割され、その複数の部分集合がそれぞれ複数のデータサーバ340に分散配置されていても良い。
ある論理データ集合内のデータ要素が各々2以上のデータサーバ340に多重化されて配置されていても良い。この場合、一つのデータ要素から多重化されたデータは総称して分散データとも呼ばれる。処理サーバ330は、多重化されたデータ要素を処理するために、分散データの何れかの一つをデータ要素として入力すれば良い。
図5は、データ所在格納部3070に格納される情報を例示する。図5を参照すると、データ所在格納部3070は、論理データ集合名3071又は部分データ名3072と、分散形態3073と、データ記述3074又は部分データ名3077と、サイズ3078と、を対応付けた情報であるデータ所在情報を複数格納する。
分散形態3073は、論理データ集合名3071又は部分データ名3072で示される論理データ集合又は部分データに含まれるデータ要素が格納される形態を示す情報である。例えば、論理データ集合(例えば、MyDataSet1)が単一に配置されている場合、その論理データ集合に対応する行(データ所在情報)における分散形態3073として「単一」という情報が設定される。また、例えば、論理データ集合(例えば、MyDataSet2)が分散配置されている場合、その論理データ集合に対応する行の情報(データ所在情報)における分散形態3073として、「分散配置」という情報が設定される。
データ記述3074は、データ要素ID3075及びデバイスID3076を包含する。デバイスID3076は、各データ要素を格納する処理データ格納部342の識別子である。当該デバイスID3076は、分散システム350内における一意の情報でも良いし、機器に割り当てられたIPアドレスでも良い。データ要素ID3075は、各データ要素が格納されるデータサーバ340内において、そのデータ要素を示す一意の識別子である。
データ要素ID3075によって指定される情報は、対象とする論理データ集合の種類に応じて決定される。例えば、データ要素がファイルの場合、データ要素ID3075はファイル名を指定する情報である。データ要素がデータベースのレコードの場合、データ要素ID3075は、レコードを抽出するようなSQL文を指定する情報であっても良い。
サイズ3078は、論理データ集合名3071又は部分データ名3072で示される論理データ集合又は部分データのサイズを示す情報である。サイズ3078は、サイズが明らかである場合、省略されても良い。例えば、全ての論理データ集合や部分データが同じサイズである場合、サイズ3078は省略されても良い。
論理データ集合(例えば、MyDataSet4等)の一部又は全てのデータ要素が多重化されているとき、当該論理データ集合の論理データ集合名3071に対応付けられて、「分散配置」であることを示す記述(分散形態3073)、及び部分データの部分データ名3077(SubSet1、SubSet2等)が格納される。このとき、データ所在格納部3070は、前述の部分データ名3077のそれぞれを部分データ名3072として、それぞれ分散形態3073及び部分データ記述3074と対応付けて(例えば、図5の5行目)格納する。
部分データ(例えば、SubSet1)が多重化(例えば二重化)されている場合、当該部分データ名3072は、分散形態3073、及び、部分データに含まれる多重化データ毎のデータ記述3074と対応付けられて、データ所在格納部3070に格納される。当該データ記述3074は、多重化されたデータ要素を格納する処理データ格納部342の識別子(デバイスID3076)及びデータサーバ340内においてそのデータ要素を示す一意の識別子(データ要素ID3075)を包含する。
論理データ集合(例えば、MyDataSet3)は、複数の部分データに分割されずに多重化されても良い。この場合、当該論理データ集合の論理データ集合名3071に対応付けられるデータ記述3074は、多重化データを格納する処理データ格納部342の識別子(デバイスID3076)及びデータサーバ340内においてデータ要素を示す一意の識別子(データ要素ID3075)を包含する。
データ所在格納部3070の各行の情報(各データ所在情報)は、対応するデータの処理が完了した際に分散処理管理サーバ300によって削除される。この削除を、処理サーバ330やデータサーバ340が行っても良い。また、データ所在格納部3070の各行の情報(各データ所在情報)の削除の代わりに、各行の情報(各データ所在情報)に対してデータの処理完了と未完了を表す情報が追加されることで、データの処理の完了が記録されても良い。
なお、分散システム350が扱う論理データ集合の分散態様の種類が単一である場合、データ所在格納部3070は、分散形態3073を包含しなくても良い。簡単のため、以降の実施の形態の説明は、原則的に論理データ集合の分散態様の種類が前述した何れか単一の態様であることを仮定して与えられる。複数の形態の組み合わせに対応するために、分散処理管理サーバ300等は、分散形態3073の記述に基づいて、以降説明する処理を切り替える。
===入出力通信路情報格納部3080===
図6は、入出力通信路情報格納部3080に格納される情報を例示する。入出力通信路情報格納部3080は、分散システム350を構成する入出力通信路毎に、入出力経路ID3081、可用帯域3082、入力元デバイスID3083及び出力先デバイスID3084を対応付けた情報である入出力通信路情報を格納する。ここで入出力通信路は、本明細書において、データ送受信経路又は入出力経路とも表されている。入出力経路ID3081は、入出力通信が発生する機器間の入出力通信路の識別子である。可用帯域3082は、入出力通信路で現在利用可能な帯域情報である。帯域情報は実測値であっても推測値であっても良い。入力元デバイスID3083は、入出力通信路にデータを入力する機器のIDである。出力先デバイスID3084は、入出力通信路がデータを出力する機器のIDである。入力元デバイスID3083及び出力先デバイスID3084で示される機器のIDは、データサーバ340、処理サーバ330、及びネットワークスイッチ320等に割り当てられた、分散システム350内の一意の識別子でも良いし、各機器に割り当てられたIPアドレスでも良い。
入出力通信路は、以下に示す入出力通信路であってもよい。例えば、入出力通信路は、データサーバ340の処理データ格納部342とデータ送受信部343との入出力通信路であっても良い。また例えば、入出力通信路は、データサーバ340のデータ送受信部343とネットワークスイッチ320のデータ送受信部322との入出力通信路であっても良い。また例えば、入出力通信路は、ネットワークスイッチ320のデータ送受信部322と処理サーバ330のデータ送受信部334との入出力通信路であっても良い。また例えば、入出力通信路は、ネットワークスイッチ320のデータ送受信部322間の入出力通信路等であってもよい。ネットワークスイッチ320のデータ送受信部322を介さずに、直接データサーバ340のデータ送受信部343と処理サーバ330のデータ送受信部334との間で入出力通信路が構成されている場合、当該入出力通信路も入出力通信路に含まれる。
===サーバ状態格納部3060===
図7は、サーバ状態格納部3060に格納される情報を例示する。サーバ状態格納部3060は、分散システム350内で運転されている処理サーバ330及びデータサーバ340毎に、サーバID3061、負荷情報3062、構成情報3063、可用処理実行部情報3064及び処理データ格納部情報3065を対応付けた情報である処理サーバ状態情報を格納する。
サーバID3061は、処理サーバ330又はデータサーバ340の識別子である。処理サーバ330及びデータサーバ340の識別子は、分散システム350において一意の識別子でも良いし、それぞれに割り当てられたIPアドレスでも良い。負荷情報3062は、処理サーバ330又はデータサーバ340の処理負荷に関する情報を包含する。負荷情報3062は、例えば、CPU(Central Processing Unit;中央演算処理装置)の使用率や、メモリ使用量、又は、ネットワーク使用帯域等である。
構成情報3063は、処理サーバ330又はデータサーバ340の構成の状態情報を包含する。構成情報3063は、例えば、処理サーバ330の、CPU周波数、コア数、及び、メモリ量等のハードウェアの仕様、若しくは、OS(Operating System;オペレーティングシステム)等のソフトウェアの仕様等である。可用処理実行部情報3064は、処理サーバ330が備える処理実行部332のうちの、現在使用可能である処理実行部332の識別子である。処理実行部332の識別子は、処理サーバ330内で一意の識別子でも、分散システム350内で一意の識別子でも良い。処理データ格納部情報3065は、データサーバ340が備える処理データ格納部342の識別子である。
サーバ状態格納部3060、データ所在格納部3070、及び、入出力通信路情報格納部3080に格納される情報は、ネットワークスイッチ320や処理サーバ330、データサーバ340から送信される状態通知によって更新されても良い。またサーバ状態格納部3060、データ所在格納部3070、及び、入出力通信路情報格納部3080に格納される情報は、分散処理管理サーバ300が状態を問い合わせて得られた応答情報によって更新されても良い。
ここで、前述の状態通知による更新の処理の詳細について説明する。
例えば、ネットワークスイッチ320は、前述の状態通知として、当該ネットワークスイッチ320が備える各ポートの通信のスループットを示す情報、及び各ポートの接続先の装置の識別子(MACアドレス:Media Access Control address、やIPアドレス:Internet Protocol address)を示す情報を生成する。そしてネットワークスイッチ320は、分散処理管理サーバ300を介して、生成した情報をサーバ状態格納部3060やデータ所在格納部3070、入出力通信路情報格納部3080に送信し、各格納部は送信された情報に基づいて、格納されている情報を更新する。
また例えば、処理サーバ330は、前述の状態通知として、ネットワークインタフェースのスループットを示す情報、処理対象のデータの処理実行部332への割当状況を示す情報、及び処理実行部332の使用状況を示す情報を生成する。そして処理サーバ330は、分散処理管理サーバ300を介して、生成した情報をサーバ状態格納部3060やデータ所在格納部3070、入出力通信路情報格納部3080に送信し、各格納部は送信された情報に基づいて、格納されている情報を更新する。
また例えば、データサーバ340は、前述の状態通知として、当該データサーバ340が格納する処理データ格納部342(ディスク)やネットワークインタフェースのスループットを示す情報、及び当該データサーバ340が格納しているデータ要素の一覧を示す情報を生成する。そしてデータサーバ340は、分散処理管理サーバ300を介して、生成した情報をサーバ状態格納部3060やデータ所在格納部3070、入出力通信路情報格納部3080に送信し、各格納部は送信された情報に基づいて、格納されている情報を更新する。
また、分散処理管理サーバ300は、前述の状態通知を要求する情報を、ネットワークスイッチ320、処理サーバ330、及び、データサーバ340に送信し、前述の状態通知を得る。そして分散処理管理サーバ300は、受け取った状態通知を、前述の応答情報として、サーバ状態格納部3060、データ所在格納部3070、及び、入出力通信路情報格納部3080に送信する。サーバ状態格納部3060、データ所在格納部3070、及び、入出力通信路情報格納部3080は、受け取った応答情報に基づいて、格納されている情報を更新する。
===モデル生成部301===
モデル生成部301は、サーバ状態格納部3060、データ所在格納部3070及び入出力通信路情報格納部3080から情報を取得する。そしてモデル生成部301は、取得した情報を元に、ネットワークモデルを生成する。
このネットワークモデルは、データサーバ340が備える処理データ格納部342から処理サーバ330がデータを取得する際のデータの転送経路を表すモデルである。
このネットワークモデルを構成する頂点(ノード)は、ネットワークを構成する装置及びハードウェア要素、並びにこれらの装置及びハードウェア要素によって処理されるデータをそれぞれ表す。
また、このネットワークモデルを構成する辺は、ネットワークを構成する装置及びハードウェア要素の間を接続するデータ送受信経路(入出力経路)をそれぞれ表す。当該辺には、その辺に対応する入出力経路の可用帯域が制約条件として設定されている。
さらに、このネットワークモデルを構成する辺は、データとそのデータを包含するデータの集合とをそれぞれ表すノードを接続している。
さらに、このネットワークモデルを構成する辺は、データとそのデータを記憶している装置及びハードウェア要素とをそれぞれ表すノードを接続している。
前述の転送経路は、前述のネットワークモデルにおいて、辺とその辺の端点であるノードとで構成される部分グラフで表される。
モデル生成部301は、このネットワークモデルに基づいてモデル情報を出力する。このモデル情報は、最適配置計算部302が、各データサーバ340に記憶される論理データ集合を処理する処理サーバ330をそれぞれ決定する際に使用される。
図8Aは、モデル生成部301が出力するモデル情報の表を例示する。モデル情報の表の各行の情報は、識別子、辺の属性の種別、当該辺の流量の下限値(流量下限値)、当該辺の流量の上限値(流量上限値)、及び、グラフ(ネットワークモデル)における次の要素へのポインタを包含する。
識別子とは、ネットワークモデルに含まれるいずれかのノードを示す識別子である。
辺の種別とは、前述の識別子が示すノードから出る辺の種別を示す。この種別として、仮想的な経路を示す「始点経路」、「論理データ集合経路」、「部分データ経路」、「データ要素経路」、「終端経路」、及び物理的な通信経路(入出力通信路、又はデータ送受信経路)を示す「入出力経路」がある。
例えば、前述の識別子が示すノードが始点を表し、そのノードから出る辺に接続されるノード(後述の「次の要素へのポインタ」)が論理データ集合を表す場合、辺の種別は、「始点経路」である。また例えば、前述の識別子が示すノードが論理データ集合を表し、そのノードから出る辺に接続されるノードが部分データ又はデータ要素を表す場合、辺の種別は、「論理データ集合経路」である。また例えば、前述の識別子が表すノードが部分データを表し、そのノードから出る辺に接続されるノードがデータ要素又はデータサーバ340の処理データ格納部342を表す場合、辺の種別は、「部分データ経路」である。
また例えば、前述の識別子が示すノードがデータ要素を表し、そのノードから出る辺に接続されるノードがデータサーバ340の処理データ格納部342を表す場合、辺の種別は、「データ要素経路」である。また例えば、前述の識別子が表すノードがデータサーバ340の処理データ格納部342を含む現実の装置を表し、そのノードから出る辺に接続されるノードが現実の装置を表す場合、辺の種別は、「入出力経路」である。また例えば、前述の識別子が示すノードが現実の装置である処理サーバ330の処理実行部332を表し、そのノードから出る辺に接続されるノードが終点を表す場合、辺の種別は、「終端経路」である。なお、「辺の属性の種別」は、モデル情報の表から省略されても良い。
次の要素へのポインタは、対応する識別子が示すノードから出る辺に接続されるノードを示す識別子である。次の要素へのポインタは、モデル情報の表の各行の情報を示す行番号でも、モデル情報の表の行の情報が格納されているメモリの番地情報でも良い。
図8Aにおいて、モデル情報は表形式であったが、モデル情報のデータの形式は表形式に限定されるものではない。例えば、モデル情報は、連想配列、リスト、ファイルなど任意の形式であっても良い。
図8Bは、モデル生成部301が生成するモデル情報の概念図を例示する。モデル情報は、概念的には、始点をs、終点をtとしたグラフとして表される。このグラフは、ジョブJを構成するデータ要素(又は部分データ)dを処理サーバ330の処理実行部Pが受信するまでのすべての経路を表す。グラフ上の各辺は、可用帯域を属性値(制約条件)として持つ。特に可用帯域の制限がない経路に関しては、可用帯域が無限大として扱われる。この可用帯域は、無限大以外の特別な値として扱われても良い。
モデル生成部301は、デバイスの状態に応じてモデルの生成方法を変更しても良い。例えば、モデル生成部301は、CPU使用率の高い処理サーバ330を利用不可能の処理サーバ330として、当該分散処理管理サーバ300が生成するモデル上から除外しても良い。
===最適配置計算部302===
最適配置計算部302は、モデル生成部301が出力したモデル情報によって示されるネットワーク(G,u,s,t)に対して、目的関数を最大化するようなs−t−フローFを決定する。そして最適配置計算部302は、そのs−t−フローFを満たすデータフローFiを出力する。
ここで、ネットワーク(G,u,s,t)におけるGは、有向グラフG=(V,E)である。ただしVは、V=P∪D∪T∪R∪{s,t}を満たす集合である。Pは処理サーバ330の処理実行部332の集合である。Dはデータ要素の集合である。Tは論理データ集合の集合、Rは入出力通信路を構成するデバイスの集合である。sは始点、tは終点である。始点sと終点tとはモデル計算を容易にするために追加された論理的な頂点である。始点sと終点tは省略されても良い。またEは、有効グラフG上の辺eの集合である。Eは物理的な通信路(データ送受信経路又は入出力通信路)とデータ間、データ及びデータの集合、又は、データ及びそのデータを格納するハードウェア要素をそれぞれ示すノードを接続する辺を含む。
ネットワーク(G,u,s,t)におけるuは、G上の辺eから、eにおける可用帯域への容量関数である。すなわち、uは、容量関数u:E→R+である。ただしR+は正の実数を示す集合である。
s−t−フローFは、データ転送通信の通信経路と通信量とを表したモデルである。このデータ転送通信とは、あるデータが、データサーバ340が備える記憶装置(ハードウェア要素)から処理サーバ330へ転送される際に分散システム350上で発生する、データ転送通信のことである。
s−t−フローFは、頂点s及びtを除くグラフG上の全てのe∈Eでf(e)≦u(e)を満たすような流量関数fによって決定される。
データフローFiは、割り当てられたデータを処理サーバ330が取得する際に行われるデータ転送通信の通信経路を構成する装置の識別子の集合と、当該通信経路の通信量とを示す情報である。
本実施の形態における目的関数(流量関数f)を最大化させる計算式は、以下の[数1]の(1)式によって特定される。[数1]の(1)式に対する制約式は、[数1]の(2)式及び[数1]の(3)式である。
[数1]において、f(e)は、e∈Eにおける流量を表す関数(流量関数)を示す。u(e)は、グラフGの辺e∈Eで送信することが可能な単位時間当たりの流量の上限値を表す関数(容量関数)である。u(e)の値は、モデル生成部301の出力に従って決定される。δ−(v)は、グラフGの頂点v∈Vに入ってくる辺の集合であり、δ+(v)はv∈Vから出る辺の集合である。max.は最大化を示し、s.t.は制約を表す。
[数1]によれば、最適配置計算部302は、終点tに入る辺の流量について最大化するような関数f:E→R+を決定する。ただしR+は正の実数を示す集合である。終点tに入る辺の流量とは、すなわち、処理サーバ330が単位時間当たりに処理するデータ量である。
図9は、最適配置計算部302が出力する、経路情報と流量との対応表を例示する。この経路情報と流量とはデータフローFiを構成する。すなわち最適配置計算部302は、フローを表す識別子と、そのフロー上で単位時間当たりに処理されるデータ量(単位処理量)と、そのフローの経路情報とを対応付けた情報であるデータフロー情報(データフローFi)を出力する。
目的関数の最大化は、線形計画法や最大流問題におけるフロー増加法、プリフロープッシュ法等を用いることによって実現できる。最適配置計算部302は、前述の何れか又はその他の解法を実行するように構成される。
最適配置計算部302は、s−t−フローFが決定されると、そのs−t−フローFに基づいて図9に示すようなデータフロー情報を出力する。
===処理割当部303===
処理割当部303は、最適配置計算部302が出力したデータフロー情報を基に、処理実行部332が取得すべきデータ要素と単位処理量を決定し、決定情報を出力する。単位処理量とは、データフロー情報で示される経路において単位時間当たりに通信されるデータ量である。すなわち、単位処理量とは、データフロー情報で示される処理実行部332が単位時間当たりに処理するデータ量でもある。
図10は、処理割当部303が決定する決定情報の構成を例示する。図10に例示される決定情報は、処理割当部303により各処理サーバ330に送信される。各処理サーバ330に処理実行部332が複数包含されている場合、処理割当部303は、処理サーバ管理部331を介して各処理実行部332に、この決定情報をそれぞれ送信してもよい。決定情報は、その決定情報を受信する処理サーバ330の処理実行部332が受信するデータ要素の識別子(データ要素ID)と、そのデータ要素を格納するデータサーバ340の処理データ格納部342の識別子(処理データ格納部ID)とを包含する。また決定情報は、前述のデータ要素を含む論理データ集合を特定できる識別子(論理データID)及び前述のデータサーバ340を特定できる識別子(データサーバID)を包含してもよい。また、決定情報は、単位時間当たりのデータ転送量を規定する情報(単位時間当たりのデータ転送量)を包含する。
決定情報の他の例として、一つの部分データを複数の処理実行部332が処理する場合、決定情報は、受信データ特定情報を包含しても良い。受信データ特定情報は、ある論理データ集合内における受信対象のデータ要素を特定する情報である。受信データ特定情報は、例えば、データ要素の識別子の集合、データサーバ340のローカルファイル内の所定の区間を指定する情報(例えば、区間の開始位置、転送量)である。決定情報に受信データ特定情報が包含される場合、この受信データ特定情報は、データ所在格納部3070に含まれる部分データのサイズ及び各データフロー情報で示される各経路の単位処理量の比に基づいて特定される。
決定情報を受信した各処理サーバ330は、当該決定情報で特定されたデータサーバ340にデータ送信を要求する。具体的には、処理サーバ330は、データサーバ340に対して、決定情報で特定されるデータを、その決定情報で特定される単位処理量で転送する要求を送信する。
なお、処理割当部303は、各データサーバ340にこの決定情報を送信しても良い。この場合、決定情報は、その決定情報を受信したデータサーバ340が送信する論理データ集合のあるデータ要素と、そのデータ要素を処理する処理サーバ330の処理実行部332と、単位時間当たりに送信するデータ量とを特定する情報を包含する。
続いて、処理割当部303は、処理サーバ330の処理サーバ管理部331に対して、決定情報を送信する。処理サーバ330が予め当該決定情報に対応する処理プログラムを処理プログラム格納部333に格納していない場合、処理割当部303は、例えばクライアントから受信した処理プログラムを処理サーバ330に配布しても良い。処理割当部303は、処理サーバ330に対して、決定情報に対応する処理プログラムを格納しているか否か問い合わせても良い。この場合、処理割当部303は、処理サーバ330が処理プログラムを格納していないと判定した場合に、クライアントから受信した処理プログラムを当該処理サーバ330に配布する。
分散処理管理サーバ300、ネットワークスイッチ320、処理サーバ330及びデータサーバ340内の各構成要素は、専用ハードウェア装置として実現されても良い。又は、コンピュータモデルクライアント等のCPUがプログラムを実行することで、CPUが前述の分散処理管理サーバ300、ネットワークスイッチ320、処理サーバ330及びデータサーバ340内の各構成要素として機能しても良い。例えば、分散処理管理サーバ300のモデル生成部301や、最適配置計算部302、処理割当部303は専用ハードウェア装置として実現されても良い。コンピュータでもある分散処理管理サーバ300のCPUが、メモリにロードされている分散処理管理プログラムを実行することで、CPUが分散処理管理サーバ300のモデル生成部301や、最適配置計算部302、処理割当部303として機能しても良い。
また、前述したモデル、制約式、目的関数を指定するための情報は、構造プログラム等に記述され、その構造プログラム等がクライアントから分散処理管理サーバ300に与えられても良い。また前述したモデル、制約式、目的関数を指定するための情報は、起動パラメータ等としてクライアントから分散処理管理サーバ300に与えられても良い。さらに、分散処理管理サーバ300が、データ所在格納部3070等を参照してモデルを決定しても良い。
分散処理管理サーバ300は、モデル生成部301が生成したモデル情報等や、最適配置計算部302が生成したデータフロー情報等をメモリ等に保存し、当該モデル情報やデータフロー情報をモデル生成部301や最適配置計算部302の入力に加えても良い。この際に、モデル生成部301や最適配置計算部302は、当該モデル情報やデータフロー情報をモデル生成や最適配置計算に利用しても良い。
サーバ状態格納部3060、データ所在格納部3070、及び、入出力通信路情報格納部3080が格納する情報は、クライアントや分散システム350の管理者によって予め与えられていても良い。さらに、これらの情報が分散システム350を探索するクローラ等のプログラムによって収集されても良い。
分散処理管理サーバ300は、全てのモデル、制約式、目的関数に対応するように実装されていても良いし、特定のモデル等だけに対応するように実装されていても良い。
なお、図4は、この分散処理管理サーバ300が、特定の一台のコンピュータ等内に存在する場合を示しているが、入出力通信路情報格納部3080、及びデータ所在格納部3070が分散ハッシュテーブル等の技術にて分散した装置に備えられていても良い。
次に、フローチャートを参照して、分散システム350の動作を説明する。
図11は、分散システム350の全体動作を示すフローチャートである。
分散処理管理サーバ300は、クライアント360から処理プログラムの実行要求である要求情報を受け取ると、以下に挙げる情報をそれぞれ取得する(ステップS401)。第一に、分散処理管理サーバ300は、分散システム350内のネットワーク370を構成するネットワークスイッチ320の識別子の集合を取得する。第二に、分散処理管理サーバ300は、処理対象の論理データ集合のデータ要素とそのデータ要素を格納するデータサーバ340の処理データ格納部342の識別子とを対応付けたデータ所在情報の集合を取得する。第三に、分散処理管理サーバ300は、利用可能な処理サーバ330の処理実行部332の識別子の集合を取得する。
分散処理管理サーバ300は、取得した処理対象の論理データ集合に未処理のデータ要素が残っているか否か判定する(ステップS402)。分散処理管理サーバ300は、取得した処理対象の論理データ集合に未処理のデータ要素が残っていないと判定した場合(ステップS402の“No”)、分散システム350の処理は終了する。分散処理管理サーバ300は、取得した処理対象論理データ集合に未処理のデータ要素が残っていると判定した場合(ステップS402の“Yes”)、分散システム350の処理は、ステップS403に進む。
分散処理管理サーバ300は、取得した利用可能な処理サーバ330の処理実行部332の識別子で示されるそれぞれのうち、データを処理していない処理実行部332を持つ処理サーバ330があるか否か判定する(ステップS403)。分散処理管理サーバ300は、データを処理していない処理実行部332を持つ処理サーバ330が無いと判定した場合(ステップS403の“No”)、分散システム350の処理は、ステップS401に戻る。分散処理管理サーバ300は、データを処理していない処理実行部332を持つ処理サーバ330があると判定した場合(ステップS403の“Yes”)、分散システム350の処理は、ステップS404に進む。
次に分散処理管理サーバ300は、取得した各ネットワークスイッチ320の識別子の集合、各処理サーバ330の識別子の集合、及び、各データサーバ340の処理データ格納部342の識別子の集合をキーとして、入出力通信路情報と処理サーバ状態情報を取得する。そして、分散処理管理サーバ300は、取得した入出力通信路情報と処理サーバ状態情報とに基づいて、ネットワークモデル(G,u,s,t)を生成する(ステップS404)。
次に分散処理管理サーバ300は、ステップS404にて生成されたネットワークモデル(G,u,s,t)に基づいて、各処理実行部332と各データサーバ340との間における単位時間当たりのデータ転送量を決定する(ステップS405)。分散処理管理サーバ300は、具体的には、前述のネットワークモデル(G,u,s,t)に基づいて特定される、所定の制約条件下で所定の目的関数が最大となる際の単位時間当たりのデータ転送量を、所望の値として決定する。
次に、各処理サーバ330と各データサーバ340とは、ステップS405にて分散処理管理サーバ300が決定した前述の単位時間当たりのデータ転送量に従ってデータ送受信を実施する。また各処理サーバ330の処理実行部332は、前述のデータ送受信によって受信したデータを処理する(ステップS406)。そして分散システム350の処理は、ステップS401に戻る。
図12は、ステップS401における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、データ処理要求(プログラムの実行要求)である要求情報で指定された処理対象の論理データ集合の各データ要素を格納する処理データ格納部342の識別子の集合をデータ所在格納部3070から取得する(ステップS401−1)。次にモデル生成部301は、サーバ状態格納部3060から、データサーバ340の処理データ格納部342の識別子の集合、処理サーバ330の識別子の集合、及び、利用可能な処理実行部332の識別子の集合を取得する(ステップS401−2)。
図13は、ステップS404における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、分散処理管理サーバ300等のメモリ等に確保したモデル情報の表500に、始点sから処理対象の論理データ集合への論理的な経路情報を追加する(ステップS404−10)。この論理的な経路情報とは、前述のモデル情報の表500のうち、「始点経路」という辺の種別を有する行の情報である。
次にモデル生成部301は、モデル情報の表500に、論理データ集合からその論理データ集合が含むデータ要素への論理的な経路情報を追加する(ステップS404−20)。この論理的な経路情報とは、前述のモデル情報の表500のうち、「論理データ集合経路」という辺の種別を有する行の情報である。
次にモデル生成部301は、モデル情報の表500に、データ要素からそのデータ要素を格納するデータサーバ340の処理データ格納部342への論理的な経路情報を追加する。この論理的な経路情報とは、前述のモデル情報の表500のうち、「データ要素経路」という辺の種別を有する行の情報である(ステップS404−30)。
モデル生成部301は、入出力通信路情報格納部3080から、論理データ集合を構成するデータ要素を処理サーバ330の処理実行部332が処理する際の通信路の情報を示す入出力経路情報を取得する。そしてモデル生成部301は、モデル情報の表500に、取得した入出力経路情報に基づいて、通信路の情報を追加する(ステップS404−40)。この通信路の情報とは、前述のモデル情報の表500のうち、「入出力経路」という辺の種別を有する行の情報である。
次にモデル生成部301は、モデル情報の表500に、処理実行部332から終点tへの論理的な経路情報を追加する(ステップS404−50)。この論理的な経路情報とは、前述のモデル情報の表500のうち、「終端経路」という辺の種別を有する行の情報である。
図14は、ステップS404内のステップS404−10における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、受け取った要求情報に基づいて、データ所在格納部3070から取得した論理データ集合の集合内の、各論理データ集合Tiについて、ステップS404−12乃至ステップS404−15の処理を実施する(ステップS404−11)。
まず分散処理管理サーバ300のモデル生成部301は、モデル情報の表500に、識別子を始点sとして含む行の情報を追加する(ステップS404−12)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「始点経路」に設定する(ステップ404−13)。
次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、Tiの論理データ集合の名称に設定する(ステップS404−14)。次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を無限大に設定する(ステップS404−15)。
図15は、ステップS404内のステップS404−20における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、受け取った要求情報に基づいて、データ所在格納部3070から取得した論理データ集合の集合内の、各論理データ集合Tiについて、ステップS404−22の処理を実施する(ステップS404−21)。
モデル生成部301は、論理データ集合Tiのデータ要素の集合内の、各データ要素djについて、ステップS404−23乃至ステップS404−26の処理を実施する(ステップS404−22)。
モデル生成部301は、モデル情報の表500に、Tiの論理データ集合の名称を識別子として含む行の情報を追加する(ステップS404−23)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「論理データ集合経路」に設定する(ステップS404−24)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、djのデータ要素の名称(又は識別子)に設定する(ステップS404−25)。
ここで、行の情報に含まれる「識別子」及び「次の要素へのポインタ」は、ネットワークモデルにおけるあるノードを特定する情報であればよい。
次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を無限大に設定する(ステップS404−26)。
図16は、ステップS404内のステップS404−30における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、受け取った要求情報に基づいて、データ所在格納部3070から取得した論理データ集合内の、各論理データ集合Tiについて、ステップS404−32の処理を実施する(ステップS404−31)。
モデル生成部301は、論理データ集合Tiのデータ要素の集合内の、各データ要素djについて、ステップS404−33乃至ステップS404−36の処理を実施する(ステップS404−32)。
モデル生成部301は、モデル情報の表500に、データ要素djの名称を識別子として含む行の情報を追加する(ステップS404−33)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「データ要素経路」に設定する(ステップS404−34)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、データ要素djが格納されているデータサーバ340の処理データ格納部342を示すデバイスIDに設定する(ステップS404−35)。次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を無限大に設定する(ステップS404−36)。
図17は、ステップS404内のステップS404−40における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、受け取った要求情報に基づいて、データ所在格納部3070から取得した論理データ集合の集合内の、各論理データ集合Tiについて、ステップS404−42の処理を実施する(ステップS404−41)。
モデル生成部301は、論理データ集合Tiのデータ要素の集合内の、各データ要素djについて、ステップS404−430の処理を実施する(ステップS404−42)。
モデル生成部301は、モデル情報の表500に基づいて、データ要素djの次の要素のポインタを識別子として含む行の情報を、モデル情報の表500に追加する。すなわちモデル生成部301は、データ要素djが格納されている処理データ格納部342を示すデバイスIDiを識別子として含む行の情報を、モデル情報の表500に追加する(ステップS404−430)。
図18A及び図18Bは、ステップS404−40内のステップS404−430における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、入出力通信路情報格納部3080から、入力元デバイスIDとして、ステップS404−430の呼び出し時に与えられたデバイスIDiを含む行(入出力経路情報)を取り出す(ステップS404−431)。次にモデル生成部301は、ステップS404−431において取り出された入出力経路情報が含む出力先デバイスIDを含む、出力先デバイスIDの集合を特定する(ステップS404−432)。
次にモデル生成部301は、デバイスIDiを識別子として含む行の情報が既にモデル情報の表500に含まれているか否か判定する(ステップS404−433)。モデル生成部301は、当該行の情報が既にモデル情報の表500に含まれていると判定した場合(ステップS404−433の“Yes”)、分散処理管理サーバ300のステップS404−430から始まる一連の処理(サブルーチン)は終了する。一方、モデル生成部301は、当該行の情報がまだモデル情報の表500に含まれていないと判定した場合(ステップS404−433の“No”)、分散処理管理サーバ300の処理は、ステップS404−434に進む。
次にモデル生成部301は、ステップS404−432の処理において特定された出力デバイスIDの集合内の、各出力先デバイスIDjについて、ステップS404−435乃至ステップS404−439、及び、ステップS404−430の再帰実行、又は、ステップS404−4351乃至ステップS404−4355の処理を実施する(ステップS404−434)。
モデル生成部301は、出力先デバイスIDjが処理サーバ330を示すか否か判定する(ステップS404−435)。モデル生成部301は、出力先デバイスIDjが処理サーバ330を示さないと判定した場合(ステップS404−435の“No”)、ステップS404−435乃至ステップS404−439の処理及びステップS404−430の処理の再帰実行を実施する。一方、モデル生成部301は、出力先デバイスIDjが処理サーバ330を示すと判定した場合(ステップS404−435の“Yes”)、ステップS404−4351乃至ステップS404−4355の処理を実施する。
出力先デバイスIDjが処理サーバ330以外の装置を示す場合(ステップS404−435の“No”)、モデル生成部301は、モデル情報の表500に、入力元デバイスIDiを識別子として含む行の情報を追加する(ステップS404−436)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「入出力経路」に設定する(ステップS404−437)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、出力先デバイスIDjとする(ステップS404−438)。
次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を、入力元デバイスIDiで示される装置と当該出力先デバイスIDjで示される装置との間の入出力通信路の可用帯域に設定する(ステップS404−439)。次にモデル生成部301は、ステップS404−430の処理を再帰実行することで、モデル情報の表500に、出力先デバイスIDjを識別子として含む行の情報を追加する(ステップS404−430)。
出力先デバイスIDjが処理サーバ330を示す場合(ステップS404−435の“Yes”)、ステップS404−435の処理の次にモデル生成部301は、以下の処理を実行する。すなわち、モデル生成部301は、当該処理サーバ330の利用可能な処理実行部332の集合内の、各処理実行部pにおいて、ステップS404−4352乃至ステップS404−4355の処理を実施する(ステップS404−4351)。モデル生成部301は、モデル情報の表500に、入力元デバイスIDiを識別子として含む行の情報を追加する(ステップS404−4352)。
次にモデル生成部301は、当該追加行に含まれる、辺の種別を「入出力経路」に設定する(ステップS404−4353)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、処理実行部pの識別子とする(ステップS404−4354)。次にモデル生成部301は、当該追加行に含まれる、流量下限値及び流量上限値をそれぞれ以下の値に設定する。すなわちモデル生成部301は、当該流量下限値を0に設定する。またモデル生成部301は、当該流量上限値を、ステップS404−430の呼び出し時に与えられたデバイスIDiで示される装置と当該出力先デバイスIDjで示される処理サーバ330との間の入出力通信路の可用帯域に設定する(ステップS404−4355)。
図19は、ステップS404内のステップS404−50における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、サーバ状態格納部3060から取得した利用可能な処理実行部332の集合内の、各処理実行部piについて、ステップS404−52乃至ステップS404−55の処理を実施する(ステップS404−51)。
モデル生成部301は、モデル情報の表500に、処理実行部piを示すデバイスIDを識別子として含む行の情報を追加する(ステップS404−52)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「終点経路」に設定する(ステップS404−53)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、終点tに設定する(ステップS404−54)。次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を無限大に設定する(ステップS404−55)。
図20は、ステップS405における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300の最適配置計算部302は、当該分散処理管理サーバ300のモデル生成部301が生成したモデル情報を基にグラフ(s−t−フローF)を構築する。そして最適配置計算部302は、そのグラフに基づいて、処理サーバ330への単位時間当たりのデータ転送量の合計値が最大となるように、各通信路のデータ転送量を決定する(ステップS405−1)。次に最適配置計算部302は、ステップS405−1で構築されたグラフの頂点(ノード)を示すiについて、iの初期値として始点sを設定する(ステップS405−2)。次に最適配置計算部302は、メモリ上に経路情報記憶用の配列と、単位処理量の値を記録する領域を確保し、単位処理量の値を無限大で初期化する(ステップS405−3)。
次に最適配置計算部302は、iが終点tであるか否か判定する(ステップS405−4。最適配置計算部302は、iが終点tであると判定した場合(ステップS405−4の“Yes”)、分散処理管理サーバ300の処理は、ステップS405−11に進む。一方、最適配置計算部302は、iが終点tでないと判定した場合(ステップS405−4の“No”)、分散処理管理サーバ300の処理は、ステップS405−5に進む。
iが終点tでない場合(ステップS405−4の“No”)、最適配置計算部302は、グラフ(s−t−フローF)上においてiから出る経路のうち、流量が非ゼロである経路があるか否か判定する(ステップS405−5)。最適配置計算部302は、流量が非ゼロである経路が存在しないと判定した場合(ステップS405−5の“No”)、分散処理管理サーバ300のステップS403の処理(サブルーチン)は終了する。一方、最適配置計算部302は、流量が非ゼロである経路が存在すると判定した場合(ステップS405−5の“Yes”)、その経路を選択する(ステップS405−6)。次に最適配置計算部302は、ステップS405−3の処理においてメモリ上に確保した経路情報記憶用の配列にiを追加する(ステップS405−7)。
最適配置計算部302は、ステップS405−3の処理でメモリ上に確保した単位処理量の値が、ステップS405−6の処理において選択された経路の流量より小さい又は等しいか否かを判定する(ステップS405−8)。最適配置計算部302は、メモリ上に確保した単位処理量の値が当該経路の流量より小さい又は等しいと判定した場合(ステップS405−8の“Yes”)、最適配置計算部302の処理は、ステップS405−10に進む。一方、最適配置計算部302は、メモリ上に確保した単位処理量の値が当該経路の流量より大きいと判定した場合(ステップS405−8の“No”)、最適配置計算部302の処理はステップS405−9に進む。
最適配置計算部302は、ステップS405−3の処理でメモリ上に確保した単位処理量の値を、ステップS405−6の処理において選択された経路の流量で更新する(ステップS405−9)。次に最適配置計算部302は、iとしてステップS405−6の処理において選択された経路の終点を設定する(ステップS405−10)。ここで、当該経路の終点とは、現在のiとは異なる、当該経路の他の端点である。そして分散処理管理サーバ300の処理は、ステップS405−4に進む。
ステップS405−4の処理でiが終点tであった場合(ステップS405−4の“Yes”)、最適配置計算部302は、経路情報記憶用の配列に格納された経路情報と単位処理量から、データフロー情報を生成する。そして最適配置計算部302は、生成したデータフロー情報をメモリに格納する(ステップS405−11)。そして分散処理管理サーバ300の処理は、ステップS405−2に進む。
最適配置計算部302は、ステップS405内のステップS405−1において、ネットワークモデル(G,u,s,t)を基に目的関数を最大化する。最適配置計算部302は、この最大化の手法として、線形計画法や最大流問題におけるフロー増加法等を用いて、当該目的関数の最大化の処理を行う。最大流問題におけるフロー増加法を用いた動作の具体例が図47A乃至47Gを参照して後述される。
図21は、ステップS406における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300の処理割当部303は、利用可能な処理実行部332の集合内の、各処理実行部piについて、ステップS406−2の処理を実施する(ステップS406−1)。
処理割当部303は、処理実行部piを含む経路情報の集合内の、各経路情報fjについて、ステップS406−3乃至ステップS406−4の処理を実施する(ステップS406−2)。なお、この各経路情報fjは、ステップS405において生成されたデータフロー情報に含まれる。
処理割当部303は、最適配置計算部302が算出した経路情報fjに対応するデータ要素の格納先を示すデータサーバ340の処理データ格納部342の識別子を経路情報fjから取り出す(ステップS406−3)。次に処理割当部303は、処理実行部piを備える処理サーバ330に対して、処理プログラムと決定情報とを送付する(ステップS406−4)。ここで処理プログラムとは、当該データ要素を格納するデータサーバ340の処理データ格納部342から当該データ要素を、前述のデータフロー情報が指定する単位処理量で転送するよう指示するための処理プログラムである。またデータサーバ340、処理データ格納部342、データ要素、及び、単位処理量は、決定情報に含まれる情報によって特定される。
本実施の形態における分散システム350がもたらす第1の効果は、複数のデータサーバ340と複数の処理サーバ330とを備えるシステムが、そのシステム全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ300が、各データサーバ340と各処理サーバ330の処理実行部332との任意の組み合わせ全体から、分散システム350におけるデータ送受信時の通信帯域を考慮して、送受信を行うデータサーバ340と処理実行部332を決定するからである。
本分散システム350のデータ送受信は、記憶装置などの装置内やネットワークにおけるデータ転送帯域のボトルネックによる悪影響を軽減する。
また、本実施の形態における分散システム350は、分散処理管理サーバ300が、各データサーバ340と各処理サーバ330の処理実行部332との任意の組み合わせから、分散システム350におけるデータ送受信時の通信帯域を考慮する。よって、本実施の形態における分散システム350は、データを記憶する複数のデータサーバ340と当該データを処理する複数の処理サーバ330とが分散配置されるシステムに於いて、単位時間当たりにおける全処理サーバ330の総処理データ量を最大化するデータ転送経路を決定するための情報を生成できる。
さらに、本実施の形態における分散システム350のデータ送受信は、関連技術よりも、記憶装置などの装置内やネットワークにおけるデータ転送帯域の利用効率を高めることが可能である。なぜなら、本実施の形態における分散システム350は、分散処理管理サーバ300が、各データサーバ340と各処理サーバ330の処理実行部332との任意の組み合わせから、分散システム350におけるデータ送受信時の通信帯域を考慮するからである。具体的には分散システム350は、以下のように動作するからである。まず分散システム350は、各データサーバ340と各処理サーバ330の処理実行部332との任意の組み合わせから、空いている通信帯域を最大限活用する組み合わせを特定する。すなわち、分散システム350は、処理サーバ330が受信する単位時間当たりのデータ量の合計が最大となる、各データサーバ340と各処理サーバ330の処理実行部332との任意の組み合わせを特定する。そして分散システム350は、特定された組み合わせに基づいてデータ転送経路を決定するための情報を生成する。以上の動作により、本実施の形態における分散システム350は、前述の効果を奏する。
[第2の実施の形態]
第2の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ300は、論理データ集合内の部分データが多重化された状態で複数のデータサーバ340に格納されたデータを扱う。この部分データは複数のデータ要素を含む。
図22は、第2の実施の形態のステップS404−20における分散処理管理サーバ300の動作を示すフローチャートである。本実施の形態では、第1の実施の形態に対し、複数の部分データをモデルに追加する処理が追加されている。分散処理管理サーバ300のモデル生成部301は、取得したデータ集合の集合内の、各論理データ集合Tiについて、ステップS404−212の処理を実施する(ステップS404−211)。
モデル生成部301は、受け取った要求情報に基づいて特定される論理データ集合Tiの部分データの集合内の、各部分データdjについて、ステップS404−213乃至ステップS404−216及びステップS404−221の処理を実施する(ステップS404−212)。ここで、各部分データdjは、複数のデータ要素ekを含んでいる。
モデル生成部301は、モデル情報の表500に、Tiの論理データ集合の名称を識別子として含む行の情報を追加する(ステップS404−213)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「論理データ集合経路」に設定する(ステップS404−214)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、djの部分データの名称に設定する(ステップS404−215)。次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を無限大に設定する(ステップS404−216)。
次にモデル生成部301は、部分データdjを構成する各データ要素ekについて、ステップS404−222乃至ステップS404−225の処理を実施する(ステップS404−221)。
モデル生成部301は、モデル情報の表500に、djの部分データの名称を識別子として含む行の情報を追加する(ステップS404−222)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「部分データ経路」に設定する(ステップS404−223)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、データ要素ekの識別子に設定する(ステップS404−224)。次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を無限大に設定する(ステップS404−225)。
図23は、本実施の形態におけるステップS404−30における分散処理管理サーバ300の動作を示すフローチャートである。本実施の形態では、第1の実施の形態に対し、複数のデータ要素に対してそれぞれデータ要素経路を特定し、それぞれモデルに追加する処理が追加されている。
分散処理管理サーバ300のモデル生成部301は、受け取った要求情報に基づいて、データ所在格納部3070から取得した論理データ集合の集合内の、各論理データ集合Tiについて、ステップS404−32−1の処理を実施する(ステップS404−31−1)。
モデル生成部301は、論理データ集合Tiの部分データの集合内の、各部分データdjについて、ステップS404−32−2の処理を実施する(ステップS404−32−1)。ここで、各部分データdjは、複数のデータ要素ekを含んでいる。
モデル生成部301は、部分データdjを構成する、各データ要素ekについて、ステップS404−33乃至ステップS404−36の処理を実施する(ステップS404−32−2)。
モデル生成部301は、モデル情報の表500に、データ要素ekの識別子を、識別子として含む行の情報を追加する(ステップS404−33)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「データ要素経路」に設定する(ステップS404−34)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、データ要素ekが格納されているデータサーバ340の処理データ格納部342を示すデバイスIDに設定する(ステップS404−35)。次にモデル生成部301は、当該追加行に含まれる、流量下限値を0に、流量上限値を無限大に設定する(ステップS404−36)。
図24は、本実施の形態におけるステップS404−40における分散処理管理サーバ300の動作を示すフローチャートである。本実施の形態では、第1の実施の形態に対し、複数のデータ要素に対してそれぞれデータ要素経路を特定し、それをモデルに追加する処理が追加されている。
分散処理管理サーバ300のモデル生成部301は、受け取った要求情報に基づいて、データ所在格納部3070から取得した論理データ集合の集合内の、各論理データ集合Tiについて、ステップS404−42−1の処理を実施する(ステップS404−41−1)。
モデル生成部301は、論理データ集合Tiの部分データの集合内の、各部分データdjについて、ステップS404−42−2の処理を実施する(ステップS404−42−1)。ここで、各部分データdjは、複数のデータ要素ekを含んでいる。
モデル生成部301は、部分データdjを構成する、各データ要素ekについて、ステップS404−430の処理を実施する(ステップS404−42−2)。
モデル生成部301は、データ要素ekが格納されている処理データ格納部342を示すデバイスIDiを識別子として含む行の情報を、モデル情報の表500に追加する(ステップS404−430)。ステップS404−430の処理は、第1の実施の形態におけるモデル生成部301による同名のステップにおける処理と同様である。
図25は、本実施の形態のステップS406における分散処理管理サーバ300の動作を示すフローチャートである。本実施の形態では、第1の実施の形態に対し、複数の部分データ毎に処理実行部332を割り当てるように変更されている。分散処理管理サーバ300の処理割当部303は、利用可能な処理実行部332の集合内の、各処理実行部piについて、ステップS406−2−1の処理を実施する(ステップS406−1−1)。処理割当部303は、処理実行部piを含む経路情報集合内の、各経路情報fjについて、ステップS406−3−1乃至ステップS406−5−1の処理を実施する(ステップS406−2−1)。
処理割当部303は、経路情報fjから部分データを示す情報を取り出す(ステップS406−3−1)。次に処理割当部303は、当該部分データを、当該部分データを表すノードを経路に含むデータフロー情報が指定するデータ要素毎の単位処理量の比で分割し、経路情報fjに対応する単位処理量に対応する分割された部分データとその経路情報fjに含まれるノードで表されるデータ要素とを対応付ける(ステップS406−4−1)。
具体的には、処理割当部303は、ステップS406−3−1にて取り出された部分データを示す情報に対応する部分データのサイズをデータ所在格納部3070に格納されている情報から特定する。そして処理割当部303は、当該部分データを、当該部分データを表すノードを経路に含むデータフロー情報が指定するデータ要素毎の単位処理量の比で分割する。例えばある部分データを表すノードを含む経路情報が、第一の経路情報と第二の経路情報であり、第一の経路情報に対応する単位処理量が100MB/sであり、第二の経路情報に対応する単位処理量が50MB/sである場合を仮定する。この仮定において、処理される部分データのサイズが300MBである場合を仮定する。この場合、第一の経路情報に対応する単位処理量と第二の経路情報に対応する単位処理量との比(2:1)に基づいて、部分データを200MBのデータ(データ1)と100MBのデータ(データ2)とに分割する。このデータ1とデータ2とをそれぞれ示す情報が図10に示される受信データ特定情報である。そして処理割当部303は、経路情報fj(例えば第一の経路情報)に対応する単位処理量に対応する分割された部分データ(データ1)と経路情報fjに対応するデータ要素(ek)とを対応付ける。すなわち、処理割当部303は、第一の経路情報が示す経路に含まれるデータ要素とデータ1とを対応付ける。
次に処理割当部303は、データ要素ekについて、ステップS406−6−1の処理を実施する(ステップS406−5−1)。
処理割当部303は、処理実行部piを備える処理サーバ330に対して、処理プログラムと決定情報とを送付する(ステップS406−6−1)。ここで処理プログラムとは、当該データ要素ekを含むデータサーバ340の処理データ格納部342から、ekに対応する部分データの分割部分を、データフロー情報が指定する単位処理量で転送するよう指示するための処理プログラムである。またデータサーバ340、処理データ格納部342、データ要素ekに対応する部分データの分割部分、及び、単位処理量は、決定情報に含まれる情報によって特定される。
第2の実施の形態がもたらす第1の効果は、論理データ集合内の部分データが多重化された状態で複数のデータサーバ340に格納された際に、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ300が、以下のように動作するからである。まず分散処理管理サーバ300は、各データサーバ340と各処理サーバ330の処理実行部332との任意の組み合わせ全体から、多重化された部分データの取得に必要な分散システム350におけるデータ送受信時の通信帯域を考慮したネットワークモデルを生成する。そして分散処理管理サーバ300は、そのネットワークモデルに基づいて送受信を行うデータサーバ340と処理実行部332とを決定する。これらの動作により第2の実施の形態における分散処理管理サーバ300は前述の効果を奏する。
[第3の実施の形態]
第3の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ300は、処理サーバ330の処理性能に差異がある場合の、分散システム350に対応する。
図26は、第3の実施の形態のステップS404−50における分散処理管理サーバ300の動作を示すフローチャートである。本実施の形態では、第1の実施の形態に対し、処理サーバ330の処理性能に応じて決定されるスループットをモデルに追加する。
分散処理管理サーバ300のモデル生成部301は、利用可能な処理実行部332の集合内の、各処理実行部piについて、ステップS404−52乃至ステップS404−56−1の処理を実施する(ステップS404−51−1)。
モデル生成部301は、モデル情報の表500に、処理実行部piを示すデバイスIDを識別子として含む行の情報を追加する(ステップS404−52)。次にモデル生成部301は、当該追加行を含む、辺の種別を「終点経路」に設定する(ステップS404−53)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、終点tに設定する(ステップS404−54)。モデル生成部301は、当該追加行に含まれる、流量下限値を、0に設定する(ステップS404−55−1)。
次にモデル生成部301は、当該追加行に含まれる、流量上限値を、処理実行部piが単位時間当たりに処理可能な処理量に設定する(ステップS404−56−1)。この処理量は、サーバ状態格納部3060に格納された処理サーバ330の構成情報3063等に基づいて決定される。例えば、この処理量は、CPU周波数1GHz当たりの単位時間におけるデータ処理量から決定される。この処理量は、他の情報や複数の情報に基づいて決定されても良い。
例えば、モデル生成部301は、サーバ状態格納部3060に格納された、処理サーバ330の負荷情報3062を参照することによってこの処理量を決定しても良い。また、この処理量は、論理データ集合毎や部分データ(又はデータ要素)毎に異なっても良い。その場合、モデル生成部301は、論理データ集合毎や部分データ(又はデータ要素)毎に、処理サーバ330の構成情報3063等に基づく当該データの単位時間当たりの処理量を計算する。また、モデル生成部301は、当該データと他のデータとの負荷の比等の対応表を作成する。当該対応表は、ステップS405において、最適配置計算部302によって参照される。
第3の実施の形態がもたらす第1の効果は、処理サーバ330の処理性能の差異を考慮して、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ300が、以下のように動作するからである。まず分散処理管理サーバ300は、各処理サーバ330の処理性能によって決定される単位時間当たりの処理量を制約条件として導入したネットワークモデルを生成する。そして分散処理管理サーバ300は、そのネットワークモデルに基づいて、送受信を行うデータサーバ340と処理実行部332とを決定する。以上の動作により、第3の実施の形態における分散処理管理サーバ300は前述の効果を奏する。
[第4の実施の形態]
第4の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ300は、分散システム350が実行を要求されたプログラムについて、特定の論理データ集合内の部分データ(又はデータ要素)を取得する際に占有する通信帯域に上限値や下限値が設定されている場合に対応する。
なお、ここでは分散システム350が実行要求されたプログラム処理の一単位は、ジョブと表される。
図27は、本実施の形態における分散システム350の構成を示すブロック図である。本実施の形態における分散処理管理サーバ300は、第1の実施の形態の分散処理管理サーバ300が包含する格納部や構成要素に加えて、ジョブ情報格納部3040を包含する。
===ジョブ情報格納部3040===
ジョブ情報格納部3040は、分散システム350が実行要求されたプログラム処理に関する構成情報を格納する。
図28Aは、ジョブ情報格納部3040に格納される構成情報を例示する。ジョブ情報格納部3040は、ジョブID3041、論理データ集合名3042、最低単位処理量3043、最大単位処理量3044を包含する。
ジョブID3041は、分散システム350が実行するジョブ毎に割り当てられた、分散システム350内において一意である識別子である。論理データ集合名3042は、当該ジョブが扱う論理データ集合の名称(識別子)である。最低単位処理量3043は、当該論理データ集合に指定された、単位時間当たりの処理量の最低値である。最大単位処理量3044は、当該論理データ集合に指定された、単位時間当たりの処理量の最大値である。
ひとつのジョブが複数の論理データ集合を扱う場合は、一つのジョブIDに対して異なる論理データ集合名3042、最低単位処理量3043、最大単位処理量3044を格納する行の情報が複数あっても良い。
図29は、第4の実施の形態のステップS401における分散処理管理サーバ300の動作を示すフローチャートである。
モデル生成部301は、ジョブ情報格納部3040から、実行中のジョブの集合を取得する(ステップS401−1−1)。次にモデル生成部301は、データ所在格納部3070から、データ処理要求で指定された処理対象の論理データ集合の各データ要素を格納する処理データ格納部342の識別子の集合を取得する(ステップS401−2−1)。
次にモデル生成部301は、サーバ状態格納部3060から、データサーバ340の処理データ格納部342の識別子の集合、処理サーバ330の識別子の集合、及び、利用可能な処理実行部332の識別子の集合を取得する(ステップS401−3−1)。
図30は、第4の実施の形態のステップS404における分散処理管理サーバ300の動作を示すフローチャートである。
モデル生成部301は、モデル情報の表500に、始点sからジョブへの論理的な経路情報と、ジョブから論理データ集合への論理的な経路情報を追加する(ステップS404−10−1)。始点sからジョブへの論理的な経路情報とは、モデル情報の表500のうち、「始点経路」という辺の種別を有する行の情報である。ジョブから論理データ集合への論理的な経路情報とは、モデル情報の表500のうち、「ジョブ情報経路」という辺の種別を有する行の情報である。
次にモデル生成部301は、モデル情報の表500に、論理データ集合からデータ要素への論理的な経路情報を追加する(ステップS404−20)。論理データ集合からデータ要素への論理的な経路情報とは、モデル情報の表500のうち、「論理データ集合経路」という辺の種別を有する行の情報である。
次にモデル生成部301は、モデル情報の表500に、データ要素からそのデータ要素を格納するデータサーバ340の処理データ格納部342への論理的な経路情報を追加する(ステップS404−30)。この論理的な経路情報とは、前述のモデル情報の表500のうち、「データ要素経路」という辺の種別を有する行の情報である。
モデル生成部301は、入出力通信路情報格納部3080から、論理データ集合を構成するデータ要素を処理サーバ330の処理実行部332が処理する際の通信路の情報を示す入出力経路情報を取得する。そしてモデル生成部301は、モデル情報の表500に、取得した入出力経路情報に基づいて、通信路の情報を追加する(ステップS404−40)。この通信路の情報とは、前述のモデル情報の表500のうち、「入出力経路」という辺の種別を有する行の情報である。
次にモデル生成部301は、モデル情報の表500に、処理実行部332から終点tへの論理的な経路情報を追加する(ステップS404−50)。この論理的な経路情報とは、前述のモデル情報の表500のうち、「終端経路」という辺の種別を有する行の情報である。
図31は、第4の実施の形態のステップS404−10−1における分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300のモデル生成部301は、取得したジョブの集合JのジョブJobiについて、ステップS404−112乃至ステップS404−115の処理を実施する(ステップS404−111)。
モデル生成部301は、モデル情報の表500に、識別子をsとして含む行の情報を追加する(ステップS404−112)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「始点経路」とする(ステップS404−113)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、JobiのジョブIDに設定する(ステップS404−114)。次にモデル生成部301は、ジョブ情報格納部3040に格納される情報に基づいて、当該追加行に含まれる、流量下限値と流量上限値を、それぞれJobiの最低単位処理量と最大単位処理量に設定する(ステップS404−115)。
次にモデル生成部301は、ジョブの集合JのジョブJobiについて、ステップS404−122の処理を実施する(ステップS404−121)。
モデル生成部301は、Jobiが扱う論理データ集合内の、各論理データ集合Tiについて、ステップS404−123乃至ステップS404−126の処理を実施する(ステップS404−122)。
モデル生成部301は、モデル情報の表500に、識別子をJobiとして含む行の情報を追加する(ステップS404−123)。次にモデル生成部301は、当該追加行に含まれる、辺の種別を「論理データ集合経路」に設定する(ステップS404−124)。次にモデル生成部301は、当該追加行に含まれる、次の要素へのポインタを、Tiの論理データ集合の名称(論理データ集合名)とする(ステップS404−125)。次にモデル生成部301は、ジョブ情報格納部3040に格納されている情報に基づいて、当該追加行に含まれる、流量下限値と流量上限値を、Tiを論理データ集合名として含む行の情報に対応する流量下限値と流量上限値にそれぞれ設定する(ステップS404−126)。
本実施の形態では、最適配置計算部302は、モデル生成部301が出力したモデル情報によって示されるネットワーク(G,l,u,s,t)に対して、目的関数を最大化するようなs−t−フローFを決定する。そして最適配置計算部302は、そのs−t−フローFを満たす経路情報と流量との対応表を出力する。
ここで、ネットワーク(G,l,u,s,t)におけるlは、装置間の通信路eから、eにおける最低流量への最低流量関数である。また、uは、装置間の通信路eから、eにおける可用帯域への容量関数である。すなわち、uは、容量関数u:E→R+である。ただしR+は正の実数を示す集合である。Eは、通信路eの集合である。またネットワーク(G,l,u,s,t)におけるGは、最低流量関数l及び容量関数uによって制限された有向グラフG=(V,E)である。
s−t−フローFは、頂点s及びtを除くグラフG上の全てのe∈Eでl(e)≦f(e)≦u(e)を満たすような流量関数fによって決定される。
すなわち、本実施の形態における制約式は、第1の実施の形態における[数1]の(3)式を次の[数2]の(4)式で置き換えた式である。
ただし、[数2]において、l(e)は辺eにおける流量の下限値を示す関数である。
第4の実施の形態がもたらす第1の効果は、特定の論理データ集合内の部分データ(又はデータ要素)を取得する際に占有する通信帯域に設定された上限値や下限値を考慮して、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ300が、以下のように動作するからである。まず分散処理管理サーバ300は、部分データ(又はデータ要素)を取得する際に占有する通信帯域に設定された上限値や下限値を制約条件として導入したネットワークモデルを生成する。そして分散処理管理サーバ300は、そのネットワークモデルに基づいて、送受信を行うデータサーバ340と処理実行部332とを決定する。以上の動作により、第4の実施の形態における分散処理管理サーバ300は、前述の効果を奏する。
第4の実施の形態がもたらす第2の効果は、特定の論理データ集合や部分データ(又はデータ要素)に対して優先度が設定されている際に、設定された優先度の制約を満たし、かつ、全体として単位時間当たりの処理量が最大となるサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ300は、以下の機能を有するからである。すなわち、分散処理管理サーバ300は、論理データ集合や部分データ(又はデータ要素)に対して設定された優先度を、論理データ集合や部分データ(又はデータ要素)を取得する際に占有する通信帯域の比率として設定する。以上の機能を有することにより、第4の実施の形態における分散処理管理サーバ300は、前述の効果を奏する。
[第4の実施の形態の第1の変形例]
第4の実施の形態における分散処理管理サーバ300は、「入出力経路」を辺の種別として含む行の情報で示されるネットワークモデル上の辺に対して上限値又は下限値を設定しても良い。
この場合、分散処理管理サーバ300は、帯域制限情報格納部3090をさらに備える。図28Bは、帯域制限情報格納部3090が格納する情報の一例を示す図である。図28Bを参照すると、帯域制限情報格納部3090は、入力元デバイスID3091、出力先デバイスID3092、最低単位処理量3093、及び最大単位処理量3094を対応付けて格納している。入力元デバイスID3091及び出力先デバイスID3092は、「入出力経路」に接続されるノードによって表される装置を示す識別子である。最低単位処理量3093は、当該入出力経路に指定される通信帯域の最低値である。最大単位処理量3094は、当該入出力経路に指定される通信帯域の最大値である。
第4の実施の形態の第1の変形例における、分散処理管理サーバ300の動作の概要を、第4の実施の形態における分散処理管理サーバ300の動作との差分を示すことで説明する。
モデル生成部301は、ステップS404−40内のステップS404−439(図18A参照)の処理において、ステップS404−430(図17参照)の呼び出し時に与えられたデバイスIDiと当該出力先デバイスIDjとに対応付けられている最大単位処理量と最低単位処理量とを帯域制限情報格納部3090から読み出す。そしてモデル生成部301は、追加行に含まれる、流量下限値を、前述の読み出された最低単位処理量に設定し、流量上限値を前述の読み出された最大単位処理量に設定する。
また、モデル生成部301は、ステップS404−40内のステップS404−4355(図18B参照)の処理において、ステップS404−430(図17参照)の呼び出し時に与えられたデバイスIDiと当該出力先デバイスIDjとに対応付けられている最大単位処理量と最低単位処理量とを帯域制限情報格納部3090から読み出す。そしてモデル生成部301は、追加行に含まれる、流量下限値を、前述の読み出された最低単位処理量に設定し、流量上限値を前述の読み出された最大単位処理量に設定する。
第4の実施の形態の第1の変形例における分散処理管理サーバ300は、第4の実施の形態における分散処理管理サーバ300と同様の機能を備える。また分散処理管理サーバ300は、データ送受信経路に対して、可用帯域とは異なるデータ流量の上限値及び下限値を設定する。よって分散処理管理サーバ300は、分散システム350が使用する通信帯域を可用帯域によらず任意に設定できるようになる。したがって分散処理管理サーバ300は、第4の実施の形態における分散処理管理サーバ300と同様の効果を奏するとともに、分散システム350がデータ送受信経路に与える負荷を制御することができる。
[第4の実施の形態の第2の変形例]
第4の実施の形態における分散処理管理サーバ300は、「論理データ集合経路」を辺の種別として含む行の情報で示されるネットワークモデル上の辺に対して上限値又は下限値を設定しても良い。
この場合、分散処理管理サーバ300は、帯域制限情報格納部3100をさらに備える。図28Cは、帯域制限情報格納部3100が格納する情報の一例を示す図である。図28Cを参照すると、帯域制限情報格納部3100は、論理データ集合名3101、データ要素名3102、最低単位処理量3103、及び最大単位処理量3104を対応付けて格納している。論理データ集合名3101は、ジョブが扱う論理データ集合の名称(識別子)である。データ要素名3102は、この「論理データ集合経路」に接続されるノードで示されるデータ要素の名称(識別子)である。最低単位処理量3103は、当該論理データ集合経路に指定されるデータ流量の最低値である。最大単位処理量3104は、当該論理データ集合経路に指定されるデータ流量の最大値である。
第4の実施の形態の第2の変形例における、分散処理管理サーバ300の動作の概要を、第4の実施の形態における分散処理管理サーバ300の動作との差分を示すことで説明する。
モデル生成部301は、ステップS404−20内のステップS404−26(図15参照)の処理において、論理データ集合名Tiとデータ要素名djとに対応付けられている最大単位処理量と最低単位処理量とを帯域制限情報格納部3100から読み出す。そしてモデル生成部301は、追加行に含まれる、流量下限値を、前述の読み出された最低単位処理量に設定し、流量上限値を前述の読み出された最大単位処理量に設定する。
第4の実施の形態の第2の変形例における分散処理管理サーバ300は、第4の実施の形態における分散処理管理サーバ300と同様の機能を備える。また分散処理管理サーバ300は、論理データ集合経路に対して、データ流量の上限値及び下限値を設定する。よって分散処理管理サーバ300は、各データ要素が単位時間当たりに処理されるデータ量を制御できる。したがって分散処理管理サーバ300は、第4の実施の形態における分散処理管理サーバ300と同様の効果を奏するとともに、各データ要素の処理における優先度を制御することができる。
[第5の実施の形態]
第5の実施の形態について図面を参照して詳細に説明する。本実施の形態の分散処理管理サーバ300は、入出力通信路の可用帯域を、自身が生成したモデル情報とデータフロー情報に基づいて各経路に割り当てられる帯域の情報とから推測する。
図32は、本実施の形態における分散システム350の構成を示すブロック図である。本実施の形態では、分散処理管理サーバ300が包含する処理割当部303は、各経路に対して処理を割り当てる際に消費する入出力通信路の帯域の情報を用いて、入出力通信路情報格納部3080が格納する各入出力通信路の可用帯域を示す情報を更新する機能をさらに有する。
図33は、本実施の形態のステップS406における、分散処理管理サーバ300の動作を示すフローチャートである。
分散処理管理サーバ300の処理割当部303は、利用可能な処理実行部332の集合内の、各処理実行部piについて、ステップS406−2−2の処理を実行する(ステップS406−1−2)。
処理割当部303は、処理実行部piを含む経路情報の集合内の、各経路情報fjについて、ステップS406−3−2の処理を実行する(ステップS406−2−2)。
処理割当部303は、経路情報fjからその経路情報に対応するデータ要素の情報を取り出す(ステップS406−3−2)。
次に処理割当部303は、処理実行部piを備える処理サーバ330に対して、処理プログラムと決定情報とを送付する(ステップS406−4−2)。ここで処理プログラムは、当該データ要素を含むデータサーバ340の処理データ格納部342から当該データ要素を、データフロー情報が指定する単位処理量で転送するよう指示するための処理プログラムである。またデータサーバ340、処理データ格納部342、データ要素、及び、単位処理量は、決定情報に含まれる情報によって特定される。
次に処理割当部303は、当該データ要素を取得する際に経由する入出力通信路に対して、データフロー情報が指定する単位処理量をその入出力通信路の可用帯域から減算する。そして処理割当部303は、減算結果の値を、その入出力通信路に対応する入出力通信路情報の新しい可用帯域情報として入出力通信路情報格納部3080に格納する(ステップS406−5−2)。
第5の実施の形態がもたらす第1の効果は、入出力通信路の可用帯域を計測する際に生じる負荷を低減しながら、全体として単位時間当たりの処理量を最大とするようにサーバ間のデータ送受信を実現できることである。
その理由は、分散処理管理サーバ300が、以下のように動作するからである。まず分散処理管理サーバ300は、直前に決定した送受信を行うデータサーバ340と処理実行部332との情報を基に、通信路の現在の可用帯域を推測する。そして分散処理管理サーバ300は、推測した情報を基にネットワークモデルを生成する。そして分散処理管理サーバ300は、そのネットワークモデルに基づいて、送受信を行うデータサーバ340と処理実行部332とを決定する。以上の動作により、第5の実施の形態における分散処理管理サーバ300は、前述の効果を奏する。
[第6の実施の形態]
図34は、第6の実施の形態における分散処理管理サーバ600の構成を示すブロック図である。図34を参照すると、分散処理管理サーバ600は、モデル生成部601と、最適配置計算部602とを備える。
===モデル生成部601===
モデル生成部601は、ネットワークを構成する装置、及び処理されるデータのそれぞれがノードで表される、ネットワークモデルを生成する。このネットワークモデルにおいて、データ及びそのデータを記憶するデータサーバをそれぞれ表すノードの間が辺で接続されている。またこのネットワークモデルにおいて、前述のネットワークを構成する装置を表すノードの間が辺で接続されその辺に対してその辺に接続されるノードで表される装置間の現実の通信路における可用帯域が辺の流量に関する制約条件として設定されている。
モデル生成部601は、データを処理する処理サーバの識別子の集合を、例えば第1の実施の形態におけるサーバ状態格納部3060から取得してもよい。またモデル生成部601は、データの識別子とそのデータを記憶するデータサーバの識別子とを対応付けた情報であるデータ所在情報の集合を、例えば第1の実施の形態におけるデータ所在格納部3070から取得してもよい。またモデル生成部601は、データサーバと処理サーバとを接続するネットワークを構成する装置の識別子とその装置間の通信路における可用帯域を示す帯域情報とを対応付けた情報である入出力通信路情報の集合を、例えば第1の実施の形態における入出力通信路情報格納部3080から取得してもよい。この場合、データサーバは、モデル生成部601が取得したデータ所在情報の集合に含まれる識別子で示されるデータサーバである。また、処理サーバは、モデル生成部601が取得した処理サーバの識別子の集合で示される処理サーバである。
図35は、処理サーバの識別子の集合の一例を示す図である。図35を参照すると、処理サーバの識別子として、n1、n2、及びn3が示されている。
図36は、データ所在情報の集合の一例を示す図である。図36を参照すると、データの識別子d1で示されるデータがデータサーバの識別子D1で示されるデータサーバに記憶されていることが示されている。同様にデータの識別子d2で示されるデータがデータサーバの識別子D3で示されるデータサーバに記憶されていることが示されている。またデータの識別子d3で示されるデータがデータサーバの識別子D2で示されるデータサーバに記憶されていることが示されている。
図37は、入出力通信路情報の集合の一例を示す図である。図37を参照すると、入力元デバイスID「sw2」で示される装置と、出力先デバイスID「n2」で示される装置との間の通信路の可用帯域が「100MB/s」であることが示されている。同様に、入力元デバイスID「sw1」で示される装置と、出力先デバイスID「sw2」で示される装置との間の通信路の可用帯域が「1000MB/s」であることが示されている。また、入力元デバイスID「D1」で示される装置と、出力先デバイスID「ON1」で示される装置との間の通信路の可用帯域が「10MB/s」であることが示されている。
モデル生成部601は、取得したデータ所在情報と入出力通信路情報とに基づいて、ネットワークモデルを生成する。このネットワークモデルは、装置及びデータのそれぞれがノードとして表されたモデルである。またこのネットワークモデルは、モデル生成部601が取得したあるデータ所在情報で示されるデータ及びデータサーバを表すノードの間が辺で接続されているモデルである。さらに、このネットワークモデルは、モデル生成部601が取得したある入出力通信路情報に含まれる識別子で示される装置を表すノードの間が辺で接続され、その辺に対して前述のある入出力通信路情報に含まれる帯域情報が制約条件として設定されているネットワークモデルである。
===最適配置計算部602===
最適配置計算部602は、モデル生成部601が生成したネットワークモデルに基づいて、データフロー情報を生成する。具体的には、最適配置計算部602は、モデル生成部601が取得したデータ所在情報の集合で示されるデータのうちから一以上のデータが特定されると、その特定されたデータと前述のネットワークモデルとに基づいて、データフロー情報を生成する。
データフロー情報とは、一以上の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前述の処理サーバと、前述の特定されたデータとの経路及びその経路のデータ流量を示す情報である。前述の一以上の処理サーバとは、モデル生成部601が取得した処理サーバの識別子の集合で示される少なくとも一部の処理サーバである。
図38は、本発明の第6の実施の形態における分散処理管理サーバ600とその周辺装置のハードウェア構成を示す図である。図38に示されるように、分散処理管理サーバ600は、CPU691、ネットワーク接続用の通信I/F692(通信インターフェース692)、メモリ693、及びプログラムを格納するハードディスク等の記憶装置694を含む。また、分散処理管理サーバ600は、バス697を介して入力装置695及び出力装置696に接続されている。
CPU691は、オペレーティングシステムを動作させて本発明の第6の実施の形態に係る分散処理管理サーバ600の全体を制御する。また、CPU691は、例えばドライブ装置などに装着された記録媒体からメモリ693にプログラムやデータを読み出し、これにしたがって第6の実施の形態における分散処理管理サーバ600は、モデル生成部601、及び、最適配置計算部602として各種の処理を実行する。
記憶装置694は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、外付けハードディスク、又は半導体メモリ等であって、コンピュータプログラムをコンピュータ読み取り可能に記録する。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。
入力装置695は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力装置695は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル、加速度計、ジャイロセンサ、カメラなどでもよい。
出力装置696は、例えばディスプレイで実現され、出力を確認するために用いられる。
なお、第6の実施の形態の説明において利用されるブロック図(図34)には、ハードウェア単位の構成ではなく、機能単位のブロックが示されている。これらの機能ブロックは図38に示されるハードウェア構成によって実現される。ただし、分散処理管理サーバ600が備える各部の実現手段は特に限定されない。すなわち、分散処理管理サーバ600は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線又は無線で接続し、これら複数の装置により実現されてもよい。
また、CPU691は、記憶装置694に記録されているコンピュータプログラムを読み込み、そのプログラムにしたがって、モデル生成部601、及び、最適配置計算部602として動作してもよい。
また、前述のプログラムのコードを記録した記録媒体(又は記憶媒体)が、分散処理管理サーバ600に供給され、分散処理管理サーバ600が記録媒体に格納されたプログラムのコードを読み出し実行してもよい。すなわち、本発明は、第6の実施の形態における分散処理管理サーバ600が実行するためのソフトウェア(情報処理プログラム)を一時的に記憶する又は非一時的に記憶する記録媒体698も含む。
図39は、第6の実施の形態における分散処理管理サーバ600の動作の概要を示すフローチャートである。
モデル生成部601は、処理サーバを示す識別子の集合、データ所在情報の集合、及び、入出力通信路情報を取得する(ステップS601)。
モデル生成部601は、取得したデータ所在情報と入出力通信路情報とに基づいて、ネットワークモデルを生成する(ステップS602)。
最適配置計算部602は、一以上のデータが特定されると、モデル生成部601が生成したネットワークモデルに基づいて、前述のデータを処理する一以上の処理サーバが受信する単位時間当たりのデータ量の合計が最大となるデータフロー情報を生成する(ステップS603)。
第6の実施の形態における分散処理管理サーバ600は、データ所在情報と入出力通信路情報とに基づいて、ネットワークモデルを生成する。データ所在情報とは、データの識別子とそのデータを記憶するデータサーバの識別子とを対応付けた情報である。また、入出力通信路情報は、データサーバと処理サーバとを接続するネットワークを構成する装置の識別子とその装置間の通信路における可用帯域を示す帯域情報とを対応付けた情報である。
ネットワークモデルは、以下の特徴を有する。第一に、このネットワークモデルは、装置及びデータのそれぞれがノードとして表されている。第二に、このネットワークモデルは、あるデータ所在情報で示されるデータ及びデータサーバを表すノードの間が辺で接続されている。第三に、このネットワークモデルは、ある入出力通信路情報に含まれる識別子で示される装置を表すノードの間が辺で接続され、その辺に対して前述のある入出力通信路情報に含まれる帯域情報が制約条件として設定されている。
分散処理管理サーバ600は、一以上のデータが特定されると、その特定されたデータと前述のネットワークモデルとに基づいて、データフロー情報を生成する。データフロー情報とは、一以上の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前述の処理サーバと、前述の特定されたデータとの経路及びその経路のデータ流量を示す情報である。
よって第6の実施の形態における分散処理管理サーバ600は、複数のデータサーバと複数の処理サーバとが分散配置されるシステムに於いて、単位時間当たりにおける一以上の処理サーバにおける総処理データ量を最大化するデータ転送経路を決定するための情報を生成できる。
[第6の実施の形態の第1の変形例]
図40は、第6の実施の形態の第1の変形例における分散システム650の構成を示すブロック図である。
図40を参照すると、分散システム650は、第6の実施の形態における分散処理管理サーバ600、複数の処理サーバ630、及び、複数のデータサーバ640を包含し、それぞれがネットワーク670によって接続される。ネットワーク670は、ネットワークスイッチを含んでもよい。
第6の実施の形態の第1の変形例における分散システム650は第6の実施の形態における分散処理管理サーバ600と同様の機能を少なくとも有する。よって、第6の実施の形態の第1の変形例における分散システム650は、第6の実施の形態における分散処理管理サーバ600と同様の効果を奏する。
[[各実施の形態についての具体例に即した説明]]
[第1の実施の形態の具体例]
図41は、本具体例で使用される分散システム350の構成を示す。本分散システム350は、スイッチsw1及びsw2で接続されたサーバn1乃至n4で構成される。
サーバn1乃至n4は、状況に応じ処理サーバ330としてもデータサーバ340としても機能する。サーバn1乃至n4は、処理データ格納部342として、ディスクD1乃至D4をそれぞれ備える。本図において、サーバn1乃至n4のいずれかが、分散処理管理サーバ300として機能する。サーバn1は利用可能な処理実行部332としてp1及びp2を、サーバn3は利用可能な処理実行部332としてp3を備える。
図42は、分散処理管理サーバ300が備える、サーバ状態格納部3060に格納される情報の一例を示す。本具体例では、サーバn1の処理実行部p1及びp2と、サーバn3の処理実行部p3が利用可能である。
図43は、分散処理管理サーバ300が備える、入出力通信路情報格納部3080に格納される情報の一例を示す。ディスクの入出力帯域及び各サーバのネットワーク帯域は100MB/s、スイッチsw1及びsw2間のネットワーク帯域は1000MB/sである。本具体例における通信は全二重で行われることが想定されている。よって本具体例では、ネットワーク帯域は入力側と出力側とで独立していると仮定される。
図44は、分散処理管理サーバ300が備える、データ所在格納部3070に格納される情報の一例を示す。当該情報は、ファイルda、db、dc、及び、ddに分割されている。ファイルda及びdbは、サーバn1のディスクD1内に、ファイルdcは、サーバn2のディスクD2内に、ファイルddは、サーバn3のディスクD3内にそれぞれ格納されている。論理データ集合MyDataSet1は、単純に分散配置され、多重化処理がされていないデータ集合である。
クライアントによってMyDataSet1を使用するプログラムの実行が指示されたとき、分散処理管理サーバ300のサーバ状態格納部3060、入出力通信路情報格納部3080、及び、データ所在格納部3070が、それぞれ図42、図43、及び、図44に示す状態であったとする。
分散処理管理サーバ300のモデル生成部301は、図44のデータ所在格納部3070から、データが格納されているデバイス(例えば処理データ格納部342)の識別子の集合として{D1,D2,D3}を得る。次に、モデル生成部301は、図42のサーバ状態格納部3060から、データサーバ340の識別子の集合として{n1,n2,n3}を、処理サーバ330の識別子の集合として{n1,n3}を得る。また、モデル生成部301は、利用可能な処理実行部332の識別子の集合として{p1,p2,p3}を得る。
次に、分散処理管理サーバ300のモデル生成部301は、処理サーバ330の識別子の集合、処理実行部332の識別子の集合、及び、データサーバ340の識別子の集合を基に、図43の入出力通信路情報格納部3080に格納されている情報に基づいて、ネットワークモデル(G,u,s,t)を生成する。
図45は、本具体例でモデル生成部301が生成する、モデル情報の表を示す。図46は、図45が示すモデル情報の表が示すネットワーク(G,u,s,t)の概念図を示す。図46で示されるネットワーク(G,u,s,t)上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ300の最適配置計算部302は、図45のモデル情報の表を基に、[数1]の(2)式、及び(3)式の制約のもとで、[数1]の(1)式の目的関数の最大化を行う。図47A乃至47Gは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
まず最適配置計算部302は、図47Aに示されるネットワーク(G,u,s,t)において、始点sから終点tまでの経路のうち経路に含まれるノード(端点)が最小の経路を特定する。すなわち最適配置計算部302は、始点sから終点tまでの経路のうちホップ数が最小の経路を特定する。そして最適配置計算部302は、特定された経路において流せる最大のデータ流量(フロー)を特定し、そのフローを当該経路に流すことを仮定する。
具体的には、最適配置計算部302は、図47Bに示されるように、経路(s,MyDataSet1,da,D1,ON1,n1,p1,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図47Cに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
ネットワーク(G,u,s,t)の残余グラフとは、グラフGにおける流量が非ゼロの全ての辺e0が、その辺で示される現実の又は仮想的な経路において利用可能な残り帯域を示す順方向の辺e1と、削減可能な使用帯域を示す逆方向の辺e2と、に分解されたグラフである。順方向とはe0が示す方向と同一の方向である。また逆方向とは、e0が示す方向と逆の方向である。すなわち辺eの逆方向の辺e’とは、グラフGの頂点vから頂点wへ向かって接続する辺eに対する、wからvへ向かう辺e’を指す。
残余グラフ上の始点sから終点tまでのフロー増加路とは、残容量関数ufに対し、uf(e)>0である辺e及びuf(e’)>0である、辺eの逆方向の辺e’で構成されたsからtまでの経路を指す。残容量関数ufは順方向の辺eと逆方向の辺e’の残り容量を示す関数である。残容量関数ufは次の[数3]で定義される。
次に最適配置計算部302は、図47Cに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図47Cに示される残余グラフに基づいて、図47Dに示されるように、経路(s,MyDataSet1,dd,D3,ON3,n3,p3,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図47Eに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
次に最適配置計算部302は、図47Eに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図47Eに示される残余グラフに基づいて、図47Fに示されるように、経路(s,MyDataSet1,dc,D2,ON2,sw1,n1,p2,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図47Gに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
図47Gを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部302は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図48は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ300の処理割当部303は、処理プログラムをn1及びn3に送信する。さらに、処理割当部303は、処理サーバn1及びn3に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバn1は、データサーバn1の処理データ格納部342内のファイルdaを取得する。処理実行部p1は取得したファイルdaの処理を実行する。また、処理サーバn1は、データサーバn2の処理データ格納部342内のファイルdcを取得する。処理実行部p2は、取得したファイルdcの処理を実行する。処理サーバn3は、データサーバn3の処理データ格納部342内のファイルddを取得する。処理実行部p3は取得したファイルddの処理を実行する。図49は、図48のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
[第2の実施の形態の具体例]
第2の実施の形態の具体例を説明する。本実施の形態の具体例は、第1の実施の形態の具体例を基に、差分を示すことで説明される。
図50は、本具体例で使用される分散システム350の構成を示す。本分散システム350は、第1の実施の形態と同様に、スイッチsw1及びsw2で接続されたサーバn1乃至n4で構成される。
分散処理管理サーバ300が備える、サーバ状態格納部3060と、入出力通信路情報格納部3080の状態は、第1の実施の形態の具体例と同一であるとする。すなわち、図42は、分散処理管理サーバ300が備える、サーバ状態格納部3060に格納される情報を、図43は、分散処理管理サーバ300が備える、入出力通信路情報格納部3080に格納される情報をそれぞれ示す。
図51は、分散処理管理サーバ300が備える、データ所在格納部3070に格納される情報の一例を示す。本具体例で実行されるプログラムは、論理データ集合MyDataSet1を入力として与えられる。当該論理データ集合は、ファイルda、db、及び、dcに分割されている。ファイルda及びdbは、2重化されている。ファイルdaのデータの実体は、サーバn1のディスクD1と、サーバn2のディスクD2に、それぞれ格納されている。データの実体とは、多重化された部分データのそれぞれであり、データ要素である。ファイルdbのデータの実体は、サーバn1のディスクD1と、サーバn3のディスクD3に、それぞれ格納されている。ファイルdcは多重化されておらず、そのファイルdcはサーバn3のディスクD3に格納されている。
クライアントによってMyDataSet1を使用するプログラムの実行が指示されたとき、分散処理管理サーバ300のサーバ状態格納部3060、及び、入出力通信路情報格納部3080、データ所在格納部3070が、それぞれ図42、図43、及び、図51に示す状態であったとする。
分散処理管理サーバ300のモデル生成部301は、図51のデータ所在格納部3070から、データが格納されているデバイス(例えば処理データ格納部342)の識別子の集合として{D1,D2,D3}を得る。次に、モデル生成部301は、図42のサーバ状態格納部3060から、データサーバ340の識別子の集合として{n1,n2,n3}を、処理サーバ330の識別子の集合として{n1,n3}を得る。また、モデル生成部301は、利用可能な処理実行部332の識別子の集合として{p1,p2,p3}を得る。
次に、分散処理管理サーバ300のモデル生成部301は、処理サーバ330の識別子の集合、処理実行部332の識別子の集合、及び、データサーバ340の識別子の集合を基に、図43の入出力通信路情報格納部3080に格納されている情報に基づいて、ネットワークモデル(G,u,s,t)を生成する。
図52は、本具体例でモデル生成部301が生成する、モデル情報の表を示す。図53は、図52が示すモデル情報の表が示すネットワーク(G,u,s,t)の概念図を示す。図53で示されるネットワーク(G,u,s,t)上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ300の最適配置計算部302は、図52のモデル情報の表を基に、[数1]の(2)式、及び、(3)式の制約のもとで、[数1]の(1)式の目的関数の最大化を行う。図54A乃至54Gは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
まず最適配置計算部302は、図54Aに示されるネットワーク(G,u,s,t)において、図54Bに示されるように、経路(s,MyDataSet1,db,db1,D1,ON1,n1,p1,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図54Cに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
次に最適配置計算部302は、図54Cに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図54Cに示される残余グラフに基づいて、図54Dに示されるように、経路(s,MyDataSet1,dc,dc1,D3,ON3,n3,p3;t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図54Eに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
次に最適配置計算部302は、図54Eに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図54Eに示される残余グラフに基づいて、図54Fに示されるように、経路(s,MyDataSet1,da,da2,D2,ON2,sw1,n1,p2,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図54Gに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
図54Gを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部302は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図55は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ300の処理割当部303は、処理プログラムをn1及びn3に送信する。さらに、処理割当部303は、処理サーバn1及びn3に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバn1は、データサーバn1の処理データ格納部342内のファイルdbのデータの実体db1を取得する。処理実行部p1は、取得したデータの実体db1を実行する。また、処理サーバn1は、データサーバn2の処理データ格納部342内のファイルdaのデータの実体da2を取得する。処理実行部p2は、取得したデータの実体da2を実行する。処理サーバn3は、データサーバn3の処理データ格納部342内のファイルdcを取得する。処理実行部p3は、取得したファイルdcを実行する。図56は、図55のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
[第3の実施の形態の具体例]
第3の実施の形態の具体例を説明する。本実施の形態の具体例は、第1の実施の形態の具体例を基に、差分を示すことで説明される。
本具体例で使用する分散システム350の構成と、分散処理管理サーバ300が備える、入出力通信路情報格納部3080の状態は、第1の実施の形態の具体例と同一であるとする。すなわち、図41は、分散システム350の構成を、図43は、分散処理管理サーバ300が備える、入出力通信路情報格納部3080に格納される情報をそれぞれ示す。
図57は、分散処理管理サーバ300が備える、サーバ状態格納部3060に格納される情報の一例を示す。本具体例では、サーバn1の処理実行部p1及びp2と、サーバn3の処理実行部p3が利用可能である。本具体例では、サーバ状態格納部3060の構成情報3063は、各処理サーバのCPU周波数で示される。
本具体例では処理サーバの構成が同一ではない。可用処理実行部p1、p2、及び、p3を備える処理サーバn1及びn2について、処理サーバn1のCPUは3GHz、処理サーバn2のCPUは1GHzである。本具体例では、1GHz当たりの単位時間の処理量が50MB/sであると設定されている。すなわち、処理サーバn1は合計で150MB/s、処理サーバn3は合計で50MB/s処理できる。
クライアントによってMyDataSet1を使用するプログラムの実行が指示されたとき、分散処理管理サーバ300のサーバ状態格納部3060、入出力通信路情報格納部3080、及び、データ所在格納部3070が、それぞれ図57、図43、及び、図44に示す状態であったとする。
分散処理管理サーバ300のモデル生成部301は、図44のデータ所在格納部3070から、データが格納されているデバイスの集合として{D1,D2,D3}を得る。次に、モデル生成部301は、図57のサーバ状態格納部3060から、データサーバ340の集合として{n1,n2,n3}を、処理サーバ330の集合として{n1,n3}を得る。また、モデル生成部301は、利用可能な処理実行部332の集合として{p1,p2,p3}を得る。
次に、分散処理管理サーバ300のモデル生成部301は、処理サーバ330の識別子の集合、処理実行部332の識別子の集合、及び、データサーバ340の識別子の集合を基に、図43の入出力通信路情報格納部3080に格納されている情報に基づいて、ネットワークモデル(G,u,s,t)を生成する。
図58は、本具体例でモデル生成部301が生成する、モデル情報の表を示す。図59は、図58が示すモデル情報の表が示すネットワーク(G,u,s,t)の概念図を示す。図59で示されるネットワーク(G,u,s,t)上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ300の最適配置計算部302は、図58のモデル情報の表を基に、[数1]の(2)式、及び、(3)式の制約のもとで、[数1]の(1)式の目的関数の最大化を行う。図60A乃至60Gは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
まず最適配置計算部302は、図60Aに示されるネットワーク(G,u,s,t)において、図60Bに示されるように、経路(s,MyDataSet1,da,D1,ON1,n1,p1,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図60Cに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
次に最適配置計算部302は、図60Cに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図60Cに示される残余グラフに基づいて、図60Dに示されるように、経路(s,MyDataSet1,dd,D3,ON3,n3,p3,t)に50MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図60Eに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
次に最適配置計算部302は、図60Eに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図60Eに示される残余グラフに基づいて、図60Fに示されるように、経路(s,MyDataSet1,dc,D2,ON2,sw1,n1,p2,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図60Gに示されるネットワーク(G,u,s,t)の残余グラフを特定する。
図60Gを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部302は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図61は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ300の処理割当部303は、処理プログラムをn1及びn3に送信する。さらに、処理割当部303は、処理サーバn1及びn3に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバn1は、データサーバn1の処理データ格納部342内のファイルdaを取得する。処理実行部p1は、取得したファイルdaを実行する。また、処理サーバn1は、データサーバn2の処理データ格納部342内のファイルdcを取得する。処理実行部p2は、取得したファイルdcを実行する。処理サーバn3は、データサーバn3の処理データ格納部342内のファイルddを取得する。処理実行部p3は、取得したファイルddを実行する。図62は、図61のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
[第4の実施の形態の具体例]
第4の実施の形態の具体例を説明する。本実施の形態の具体例は、第1の実施の形態の具体例を基に、差分を示すことで説明される。
図63は、本具体例で使用される分散システム350の構成を示す。本分散システム350は、第1の実施の形態と同様に、スイッチsw1及びsw2で接続されたサーバn1乃至n4で構成される。
図64は、分散処理管理サーバ300が備える、サーバ状態格納部3060に格納される情報を示す。本具体例では、サーバn1の処理実行部p1と、サーバn2の処理実行部p2及びp3が利用可能である。
図65は、分散処理管理サーバ300が備える、ジョブ情報格納部3040に格納される情報を示す。本具体例では、プログラムを実行する単位として、ジョブMyJob1とジョブMyJob2が投入されている。
図66は、分散処理管理サーバ300が備える、データ所在格納部3070に格納される情報を示す。図66を参照すると、データ所在格納部3070は、論理データ集合MyDataSet1とMyDataSet2とをそれぞれ格納している。MyDataSet1はファイルda及びdbに、MyDataSet2はdc及びddに、それぞれ分割されている。ファイルdaは、サーバn1のディスクD1内に、ファイルdbは、サーバn2のディスクD2内に、ファイルdc及びddは、サーバn3のディスクD3内に、それぞれ格納されている。MyDataSet1及びMyDataSet2は、単純に分散配置され、多重化処理がされていないデータ集合である。
本具体例で使用する分散処理管理サーバ300が備える、入出力通信路情報格納部3080の状態は、第1の実施の形態の具体例と同一であるとする。すなわち、図43は、分散処理管理サーバ300が備える、入出力通信路情報格納部3080に格納される情報を示す。
クライアントによってMyDataSet1を使用するジョブMyJob1と、MyDataSet2を使用するジョブMyJob2の実行が指示されたとき、分散処理管理サーバ300のジョブ情報格納部3040、サーバ状態格納部3060、入出力通信路情報格納部3080、及び、データ所在格納部3070が、それぞれ図65、図64、図43、及び、図66に示す状態であったとする。
分散処理管理サーバ300のモデル生成部301は、図65のジョブ情報格納部3040から、現在実行が指示されているジョブの集合として{MyJob1,MyJob2}を得る。モデル生成部301は、ジョブそれぞれに対して、ジョブが使用する論理データ集合名、最低単位処理量及び最大単位処理量を取得する。
次に、分散処理管理サーバ300のモデル生成部301は、図66のデータ所在格納部3070から、データが格納されているデバイスの識別子の集合として{D1,D2,D3}を得る。次に、モデル生成部301は、図64のサーバ状態格納部3060から、データサーバ340の識別子の集合として{n1,n2,n3}を、処理サーバ330の識別子の集合として{n1,n2}を得る。また、モデル生成部301は、利用可能な処理実行部332の識別子の集合として{p1,p2,p3}を得る。
次に、分散処理管理サーバ300のモデル生成部301は、ジョブの集合、処理サーバ330の識別子の集合、処理実行部332の識別子の集合、及び、データサーバ340の識別子の集合を基に、図43の入出力通信路情報格納部3080に格納された情報に基づいて、ネットワークモデル(G,l,u,s,t)を生成する。
図67は、本具体例でモデル生成部301が生成する、モデル情報の表を示す。図68は、図67が示すモデル情報の表が示すネットワーク(G,l,u,s,t)の概念図を示す。図68で示されるネットワーク(G,l,u,s,t)上の各辺の値は、その経路において現在送ることができる単位時間当たりのデータ量の最大値を示す。
分散処理管理サーバ300の最適配置計算部302は、図67のモデル情報の表を基に、[数1]の(2)式、及び、(3)式の制約のもとで、[数1]の(1)式の目的関数の最大化を行う。図69A乃至69F及び図70A乃至70Fは、最大流問題におけるフロー増加法によってこの処理が行われた場合を例示する。
図69A乃至69Fは、下限流量制限を満たす初期フローの算出手順の一例を示す図である。
まず、最適配置計算部302は、図69Aに示されるネットワーク(G,l,u,s,t)に対し、仮想始点s*、及び仮想終点t*を設定する。そして最適配置計算部302は、流量制限がなされている辺の新たな流量上限値を、変更前の流量上限値と流量下限値との差分値として設定する。また最適配置計算部302は当該辺の新たな流量下限値を、0に設定する。最適配置計算部302は、以上の処理をネットワーク(G,l,u,s,t)に対して行うことで図69Bに示されるネットワーク(G’,u’,s*,t*)を得る。
最適配置計算部302は、流量制限がなされている当該辺の終点と仮想始点s*との間、及び、当該辺の始点と仮想終点t*との間をそれぞれ接続する。具体的には、前述の各頂点の間に、所定の流量上限値が設定された辺が追加される。この所定の流量上限値とは、流量制限がなされている当該辺に設定されていた変更前の流量下限値である。また、最適配置計算部302は、終点tと始点sとの間を接続する。具体的には終点tと始点sとの間に、流量上限値が無限大である辺が追加される。最適配置計算部302は、図69Bに示されたネットワークに対して以上の処理を行うことで、図69Cに示されるネットワーク(G’,u’,s*,t*)を得る。
最適配置計算部302は、図69Cに示されるネットワーク(G’,u’,s*,t*)に対して、s*から出る辺及びt*に入る辺の流量が飽和するs*−t*−フローを求める。なお、該当するフローが存在しないことは、下限流量の制限を満たす解が元のネットワークにないことを示している。本例の場合、図69Dに示される経路(s*,MyJob2,MyDataSet2,db,D2,ON2,n2,p3,t,s,t*)が該当する経路に相当する。
最適配置計算部302は、ネットワーク(G’,u’,s*,t*)から、追加した頂点及び辺を削除し、流量制限がなされている当該辺の流量制限値を変更前の元の値に戻す。そして最適配置計算部302は、流量制限がなされている当該辺に対し、流量下限値の分だけフローを流すことを仮定する。具体的には最適配置計算部302は、図69Aに示されるネットワーク(G,l,u,s,t)において、図69Eに示されるように、前述の経路から現実のフローのみを残し、さらに流量制限がなされている当該辺が前述の現実のフローに追加された経路(s,MyJob2,MyDataSet2,db,D2,ON2,n2,p3,t)を特定する。そして最適配置計算部302は、経路(s,MyJob2,MyDataSet2,db,D2,ON2,n2,p3,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図69Fに示されるネットワーク(G,u,s,t)の残余グラフを特定する。この経路(s,MyJob2,MyDataSet2,db,D2,ON2,n2,p3,t)が、下限流量制限を満たす初期フロー(図70A)である。
次に最適配置計算部302は、図70B(図69Fと同様)に示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図70Bに示される残余グラフに基づいて、図70Cに示されるように、経路(s,MyJob1,MyDataSet1,da,D1,ON1,n1,p1,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図70Dに示されるネットワーク(G,l,u,s,t)の残余グラフを特定する。
次に最適配置計算部302は、図70Dに示される残余グラフからフロー増加路を特定し、その経路に対してフローを流すことを仮定する。最適配置計算部302は、図70Dに示される残余グラフに基づいて、図70Eに示されるように、経路(s,MyJob2,MyDataSet2,dc,D3,ON3,sw2,sw1,n2,p2,t)に100MB/sのフローを流すことを仮定する。すると、最適配置計算部302は、図70Fに示されるネットワーク(G,l,u,s,t)の残余グラフを特定する。
図70Fを参照すると、これ以上のフロー増加路は存在しない。よって最適配置計算部302は、処理を終了する。そしてこの処理によって得られたフロー及びデータ流量の情報がデータフロー情報である。
図71は、目的関数の最大化の計算の結果、得られるデータフロー情報を示す。この情報を基に、分散処理管理サーバ300の処理割当部303は、処理プログラムをn1及びn2に送信する。さらに、処理割当部303は、処理サーバn1及びn2に、処理プログラムに対応する決定情報を送信することによって、データ受信と処理実行とを指示する。決定情報を受信した処理サーバn1は、データサーバn1の処理データ格納部342内のファイルdaを取得する。処理実行部p1は、取得したファイルdaを実行する。処理サーバn2は、データサーバn3の処理データ格納部342内のファイルdcを取得する。処理実行部p2は、取得したファイルdcを実行する。また、処理サーバn2は、データサーバn2の処理データ格納部342内のファイルdbを取得する。処理実行部p3は、取得したファイルdbを実行する。図72は、図71のデータフロー情報に基づいて決定される、データ送受信の一例を示す。
[第5の実施の形態の具体例]
第5の実施の形態の具体例を説明する。本実施の形態の具体例は、第1の実施の形態の具体例を基に、差分を示すことで説明される。
本具体例では、第1の実施の形態の具体例において、処理サーバ330への受信データ割り当てが実施された後に、入出力通信路情報格納部3080の格納情報が更新される。
図73は、本具体例において、分散処理管理サーバ300の処理割当部303が、処理サーバ330への受信データ割り当てを実施した後に、図48のデータフロー情報を基に更新した、入出力通信路情報格納部3080が格納する情報の一例を示す。処理割当部303は、データフローFlow1で100MB/sのデータ転送を指示した結果、D1とON1を接続する入出力経路Disk1の可用帯域を100MB/sから0MB/sに変更する。次に、処理割当部303は、データフローFlow2で100MB/sのデータ転送を指示した結果、D3とON3を接続する入出力経路Disk2の可用帯域を100MB/sから0MB/sに変更する。次に、処理割当部303は、データフローFlow3で100MB/sのデータ転送を指示した結果、以下の通りにデータを変更する。第一に、処理割当部303は、D2とON2を接続する入出力経路Disk3の可用帯域を100MB/sから0MB/sに変更する。第二に、処理割当部303は、ON2とsw1を接続する入出力経路OutNet2を100MB/sから0MB/sに変更する。第三に、処理割当部303は、sw1とn1を接続する入出力経路InNet1の可用帯域を100MB/sから0MB/sに変更する。
本発明の効果の一例は、データを記憶する複数のデータサーバと当該データを処理する複数の処理サーバとが分散配置されるシステムに於いて、単位時間当たりにおける全処理サーバの総処理データ量を最大化するデータ転送経路を決定できることである。
以上、各実施の形態及び実施例を参照して本発明を説明したが、本発明は上記実施の形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解しえる様々な変更をすることができる。
また、本発明の各実施の形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
上記の各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、を備える分散処理管理サーバ。
(付記2)
付記1に記載の分散処理管理サーバであって、
前記モデル生成手段は、始点を表すノードとデータを表すノードとの間が辺で接続され、終点を表すノードと処理サーバ又は当該処理サーバが備えるデータを処理する処理実行手段を表すノードとの間が辺で接続され、前記処理サーバと当該処理サーバが備える前記処理実行手段との間が辺で接続される前記ネットワークモデルを生成し、
前記最適配置計算手段は、前記始点から前記終点へ流すことのできる単位時間当たりの最大のデータ量を計算することによって前記データフロー情報を生成する、分散処理管理サーバ。
(付記3)
付記1又は2に記載の分散処理管理サーバであって、
前記モデル生成手段は、一以上のデータ要素を含む論理データ集合及び当該データ要素のそれぞれがノードで表され、論理データ集合及び当該論理データ集合に含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
前記最適配置計算手段は、一以上の論理データ集合が特定されると、処理サーバを示す識別子の前記集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各論理データ集合との経路及び当該経路のデータ流量を示す前記データフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理サーバ。
(付記4)
付記3に記載の分散処理管理サーバであって、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
前記論理データ集合は一以上の部分データを含み、当該部分データは一のデータが多重化されたデータのそれぞれであり、当該部分データは、それぞれ一以上のデータ要素を含み、
前記モデル生成手段は、一以上のデータ要素を含む部分データ及び当該データ要素のそれぞれがノードで表され、部分データ及び当該部分データに含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
前記処理割当手段は、前記データフロー情報が示す各経路のうち、一の部分データを示すノードを含む経路のデータ流量に基づいて、各処理サーバが取得するデータの単位時間当たりのデータ処理量を特定する、分散処理管理サーバ。
(付記5)
付記1乃至4のいずれか1項に記載の分散処理管理サーバであって、
前記モデル生成手段は、各処理サーバが備える処理実行手段及び当該処理サーバのそれぞれがノードで表され、処理サーバ及び当該処理サーバが備える処理実行手段を表すノードの間が辺で接続され、当該処理実行手段を表すノードと終点とが辺で接続され当該辺に対して当該処理実行手段が単位時間当たりに処理するデータ処理量に対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
(付記6)
付記2に記載の分散処理管理サーバであって、
前記モデル生成手段は、一以上の論理データ集合に対応付けられているジョブのそれぞれがノードで表され、ジョブ及び当該ジョブに対応付けられる論理データ集合をそれぞれ表すノードの間が辺で接続され、前記始点及び各ジョブを表すノードの間が辺で接続され当該辺に対して当該辺に接続されるジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
(付記7)
付記1又は2に記載の分散処理管理サーバであって、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
前記処理割当手段は、前記データフロー情報で示される各経路のデータ流量を、当該経路における可用帯域から減算し、減算された結果の値を当該経路の新たな可用帯域として、前記モデル生成手段が使用する可用帯域を更新する、分散処理管理サーバ。
(付記8)
付記6に記載の分散処理管理サーバであって、
前記モデル生成手段は、ジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される辺の新たな制約条件が、前記最大値と前記最小値との差を上限値に、0を下限値にそれぞれ設定され、仮想始点を示すノードと前記辺に接続されているジョブを示すノードの間が仮想辺で接続され当該仮想辺に対して前記最小値が制約条件として設定され、前記始点を示すノードと仮想終点を示すノードとの間が辺で接続され当該辺に対して前記最小値が制約条件として設定され、前記終点と前記始点との間が辺で接続される、前記ネットワークモデルを生成し、
前記最適配置計算手段は、前記ネットワークモデルに基づいて、前記仮想始点から出る辺及び前記仮想終点に入る辺のデータ流量が飽和するフローを特定し、当該フローから、前記仮想始点を示すノードと前記ジョブを示すノードの間の辺、前記始点を示すノードと前記仮想終点を示すノードとの間の辺、及び、前記終点と前記始点との間の辺を除いたフローを前記データフロー情報に含まれる初期フローとして生成する、分散処理管理サーバ。
(付記9)
付記1乃至8に記載の分散処理管理サーバであって、
前記モデル生成手段は、辺で接続されるノードをそれぞれ表す装置の識別子と当該辺に対して設定される制約条件である最大単位処理量と最低単位処理量とを対応付けて格納する帯域制限情報格納手段に格納されている最大単位処理量と最低単位処理量とを、前記ネットワークを構成する装置を表すノードの間を接続している辺に対して制約条件として設定する、分散処理管理サーバ。
(付記10)
付記3に記載の分散処理管理サーバであって、
前記モデル生成手段は、辺で接続される論理データ集合及びデータ要素のそれぞれの識別子と当該辺に対して設定される制約条件である最大単位処理量と最低単位処理量とを対応付けて格納する帯域制限情報格納手段に格納されている最大単位処理量と最低単位処理量とを、論理データ集合及び当該論理データ集合に含まれるデータ要素を表すノードの間を接続している辺に対して制約条件として設定する、分散処理管理サーバ。
(付記11)
データを記憶するデータサーバと当該データを処理する処理サーバと、分散処理管理サーバとを備え、
分散処理管理サーバは、
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、
前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段と、を備え、
処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する処理実行手段を備え、
データサーバは、データを格納する処理データ格納手段を備える、分散システム。
(付記12)
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理方法。
(付記13)
コンピュータに、
ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成する処理と、
一以上のデータが特定されると、処理サーバを示す識別子の集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する処理と、を実行させるための分散処理管理プログラムを格納する、コンピュータが読み取り可能な記憶媒体。
この出願は、2011年8月1日に出願された日本出願特願2011−168203を基礎とする優先権を主張し、その開示の全てをここに取り込む。
本発明による分散処理管理サーバは、複数のデータサーバに格納されたデータを複数の処理サーバで並列処理を行う分散システムに適用できる。また、本発明による分散処理管理サーバは、分散処理を行うデータベースシステムやバッチ処理システムといった用途にも適用できる。
101、102、103 スイッチ
111、112 コンピュータ
121、122 ラック
131、132 データセンタ
141 拠点間通信網
202、203 スイッチ
204、205、206 記憶用ディスク
207、208、209、221 コンピュータ
210、211、212、213 処理対象のデータ
214、215、216 処理プロセス
217、218、219、230、231、232 データ送受信経路
220 表
300 分散処理管理サーバ
301 モデル生成部
302 最適配置計算部
303 処理割当部
320 ネットワークスイッチ
321 スイッチ管理部
322 データ送受信部
330 処理サーバ
331 処理サーバ管理部
332 処理実行部
333 処理プログラム格納部
334 データ送受信部
340 データサーバ
341 データサーバ管理部
342 処理データ格納部
343 データ送受信部
350 分散システム
360 クライアント
370 ネットワーク
399 他のサーバ
3040 ジョブ情報格納部
3041 ジョブID
3042 論理データ集合名
3043 最低単位処理量
3044 最大単位処理量
3060 サーバ状態格納部
3061 サーバID
3062 負荷情報
3063 構成情報
3064 可用処理実行部情報
3065 処理データ格納部情報
3070 データ所在格納部
3071 論理データ集合名
3072 部分データ名
3073 分散形態
3074 データ記述
3075 データ要素ID
3076 デバイスID
3077 部分データ名
3078 サイズ
3080 入出力通信路情報格納部
3081 入出力経路ID
3082 可用帯域
3083 入力元デバイスID
3084 出力先デバイスID
3090 帯域制限情報格納部
3091 入力元デバイスID
3092 出力先デバイスID
3093 最低単位処理量
3094 最大単位処理量
3100 帯域制限情報格納部
3101 論理データ集合名
3102 データ要素名
3103 最低単位処理量
3104 最大単位処理量
500 モデル情報の表
600 分散処理管理サーバ
601 モデル生成部
602 最適配置計算部
630 処理サーバ
640 データサーバ
650 分散システム
670 ネットワーク
691 CPU
692 通信I/F
693 メモリ
694 記憶装置
695 入力装置
696 出力装置
697 バス
698 記録媒体

Claims (10)

  1. ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
    処理サーバを示す識別子の集合で示される処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、
    を備える分散処理管理サーバ。
  2. 請求項1に記載の分散処理管理サーバであって、
    前記モデル生成手段は、始点を表すノードとデータを表すノードとの間が辺で接続され、終点を表すノードと処理サーバ又は当該処理サーバが備えるデータを処理する処理実行手段を表すノードとの間が辺で接続され、前記処理サーバと当該処理サーバが備える前記処理実行手段との間が辺で接続される前記ネットワークモデルを生成し、
    前記最適配置計算手段は、前記始点から前記終点へ流すことのできる単位時間当たりの最大のデータ量を計算することによって前記データフロー情報を生成する、分散処理管理サーバ。
  3. 請求項1又は2に記載の分散処理管理サーバであって、
    前記モデル生成手段は、一以上のデータ要素を含む論理データ集合及び当該データ要素のそれぞれがノードで表され、論理データ集合及び当該論理データ集合に含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
    前記最適配置計算手段は、一以上の論理データ集合が特定されると、処理サーバを示す識別子の前記集合で示される少なくとも一部の処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各論理データ集合との経路及び当該経路のデータ流量を示す前記データフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理サーバ。
  4. 請求項3に記載の分散処理管理サーバであって、
    前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
    前記論理データ集合は一以上の部分データを含み、当該部分データは一のデータが多重化されたデータのそれぞれであり、当該部分データは、それぞれ一以上のデータ要素を含み、
    前記モデル生成手段は、一以上のデータ要素を含む部分データ及び当該データ要素のそれぞれがノードで表され、部分データ及び当該部分データに含まれるデータ要素を表すノードの間が辺で接続される前記ネットワークモデルを生成し、
    前記処理割当手段は、前記データフロー情報が示す各経路のうち、一の部分データを示すノードを含む経路のデータ流量に基づいて、各処理サーバが取得するデータの単位時間当たりのデータ処理量を特定する、分散処理管理サーバ。
  5. 請求項1乃至4のいずれか1項に記載の分散処理管理サーバであって、
    前記モデル生成手段は、各処理サーバが備える処理実行手段及び当該処理サーバのそれぞれがノードで表され、処理サーバ及び当該処理サーバが備える処理実行手段を表すノードの間が辺で接続され、当該処理実行手段を表すノードと終点とが辺で接続され当該辺に対して当該処理実行手段が単位時間当たりに処理するデータ処理量に対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
  6. 請求項2に記載の分散処理管理サーバであって、
    前記モデル生成手段は、一以上の論理データ集合に対応付けられているジョブのそれぞれがノードで表され、ジョブ及び当該ジョブに対応付けられる論理データ集合をそれぞれ表すノードの間が辺で接続され、前記始点及び各ジョブを表すノードの間が辺で接続され当該辺に対して当該辺に接続されるジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される前記ネットワークモデルを生成する、分散処理管理サーバ。
  7. 請求項1又は2に記載の分散処理管理サーバであって、
    前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段を備え、
    前記処理割当手段は、前記データフロー情報で示される各経路のデータ流量を、当該経路における可用帯域から減算し、減算された結果の値を当該経路の新たな可用帯域として、前記モデル生成手段が使用する可用帯域を更新する、分散処理管理サーバ。
  8. 請求項6に記載の分散処理管理サーバであって、
    前記モデル生成手段は、ジョブに割り当てられる単位時間当たりのデータ処理量の最大値及び最小値の少なくとも一つに対応する値が制約条件として設定される辺の新たな制約条件が、前記最大値と前記最小値との差を上限値に、0を下限値にそれぞれ設定され、仮想始点を示すノードと前記辺に接続されているジョブを示すノードの間が仮想辺で接続され当該仮想辺に対して前記最小値が制約条件として設定され、前記始点を示すノードと仮想終点を示すノードとの間が辺で接続され当該辺に対して前記最小値が制約条件として設定され、前記終点と前記始点との間が辺で接続される、前記ネットワークモデルを生成し、
    前記最適配置計算手段は、前記ネットワークモデルに基づいて、前記仮想始点から出る辺及び前記仮想終点に入る辺のデータ流量が飽和するフローを特定し、当該フローから、前記仮想始点を示すノードと前記ジョブを示すノードの間の辺、前記始点を示すノードと前記仮想終点を示すノードとの間の辺、及び、前記終点と前記始点との間の辺を除いたフローを前記データフロー情報に含まれる初期フローとして生成する、分散処理管理サーバ。
  9. データを記憶するデータサーバと当該データを処理する処理サーバと、分散処理管理サーバとを備え、
    分散処理管理サーバは、
    ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成するモデル生成手段と、
    処理サーバを示す識別子の集合で示される処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、前記処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する最適配置計算手段と、
    前記最適配置計算手段が生成する前記データフロー情報に基づいて、処理サーバが取得するデータ及び単位時間当たりのデータ処理量を示す決定情報を当該処理サーバに送信する処理割当手段と、を備え、
    処理サーバは、前記決定情報に基づいた経路にしたがって前記データサーバから当該決定情報で特定されるデータを当該決定情報に基づいた単位時間当たりのデータ量で示される速度で受信し、受信したデータを実行する処理実行手段を備え、
    データサーバは、データを格納する処理データ格納手段を備える、分散システム。
  10. ネットワークを構成する装置及び処理されるデータのそれぞれがノードで表され、データ及び当該データを記憶するデータサーバを表すノードの間が辺で接続され、前記ネットワークを構成する装置を表すノードの間が辺で接続され当該辺に対して当該装置間の通信路における可用帯域が制約条件として設定される、ネットワークモデルを生成し、
    処理サーバを示す識別子の集合で示される処理サーバが受信する単位時間当たりのデータ量の合計が最大となる、処理サーバと前記特定された各データとの経路及び当該経路のデータ流量を示すデータフロー情報を前記ネットワークモデルに基づいて生成する、分散処理管理方法。
JP2013526975A 2011-08-01 2012-07-31 分散処理管理サーバ、分散システム、及び分散処理管理方法 Active JP5850054B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013526975A JP5850054B2 (ja) 2011-08-01 2012-07-31 分散処理管理サーバ、分散システム、及び分散処理管理方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011168203 2011-08-01
JP2011168203 2011-08-01
JP2013526975A JP5850054B2 (ja) 2011-08-01 2012-07-31 分散処理管理サーバ、分散システム、及び分散処理管理方法
PCT/JP2012/069936 WO2013018916A1 (ja) 2011-08-01 2012-07-31 分散処理管理サーバ、分散システム、及び分散処理管理方法

Publications (2)

Publication Number Publication Date
JPWO2013018916A1 JPWO2013018916A1 (ja) 2015-03-05
JP5850054B2 true JP5850054B2 (ja) 2016-02-03

Family

ID=47629426

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013526975A Active JP5850054B2 (ja) 2011-08-01 2012-07-31 分散処理管理サーバ、分散システム、及び分散処理管理方法

Country Status (3)

Country Link
US (1) US20140188451A1 (ja)
JP (1) JP5850054B2 (ja)
WO (1) WO2013018916A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639562B2 (en) * 2013-03-15 2017-05-02 Oracle International Corporation Automatically determining an optimal database subsection
US10015507B2 (en) 2013-05-20 2018-07-03 Cinova Media Transform system and method in video and image compression
RU2015102736A (ru) 2015-01-29 2016-08-20 Общество С Ограниченной Ответственностью "Яндекс" Система и способ обработки запроса в сети распределенной обработки данных
US10462477B2 (en) 2015-02-25 2019-10-29 Cinova Media Partial evaluator system and method
US10460700B1 (en) 2015-10-12 2019-10-29 Cinova Media Method and apparatus for improving quality of experience and bandwidth in virtual reality streaming systems
US10515098B2 (en) 2017-02-10 2019-12-24 Johnson Controls Technology Company Building management smart entity creation and maintenance using time series data
US11994833B2 (en) 2017-02-10 2024-05-28 Johnson Controls Technology Company Building smart entity system with agent based data ingestion and entity creation using time series data
US20190095518A1 (en) * 2017-09-27 2019-03-28 Johnson Controls Technology Company Web services for smart entity creation and maintenance using time series data
US11360447B2 (en) 2017-02-10 2022-06-14 Johnson Controls Technology Company Building smart entity system with agent based communication and control
US10944971B1 (en) 2017-05-22 2021-03-09 Cinova Media Method and apparatus for frame accurate field of view switching for virtual reality
US10962945B2 (en) 2017-09-27 2021-03-30 Johnson Controls Technology Company Building management system with integration of data into smart entities
US11321251B2 (en) * 2018-05-18 2022-05-03 Nec Corporation Input/output process allocation control device, input/output process allocation control method, and recording medium having input/output process allocation control program stored therein
CN109766104B (zh) * 2018-12-07 2020-10-30 北京数字联盟网络科技有限公司 应用程序的下载系统、安装类型的确定方法以及存储介质
US11245636B2 (en) * 2019-09-20 2022-02-08 International Business Machines Corporation Distributing computing resources based on location
CN116048741A (zh) * 2021-10-28 2023-05-02 华为技术有限公司 一种数据处理的方法、装置和计算设备

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002057699A (ja) * 2000-08-11 2002-02-22 Nec Corp パケット伝送方式、パケット伝送方法及び記録媒体
JP5136649B2 (ja) * 2008-09-29 2013-02-06 日本電気株式会社 距離メトリック推定システム、座標算出ノード、距離メトリック推定方法及びプログラム
WO2011074699A1 (ja) * 2009-12-18 2011-06-23 日本電気株式会社 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
US9124508B2 (en) * 2011-05-23 2015-09-01 Nec Corporation Communication control device communication control system, communication control method and program
WO2013171953A1 (ja) * 2012-05-15 2013-11-21 日本電気株式会社 分散データ管理装置及び分散データ操作装置
US9807152B2 (en) * 2012-07-30 2017-10-31 Nec Corporation Distributed processing device and distributed processing system as well as distributed processing method
US9367366B2 (en) * 2014-03-27 2016-06-14 Nec Corporation System and methods for collaborative query processing for large scale data processing with software defined networking
US20160350146A1 (en) * 2015-05-29 2016-12-01 Cisco Technology, Inc. Optimized hadoop task scheduler in an optimally placed virtualized hadoop cluster using network cost optimizations

Also Published As

Publication number Publication date
WO2013018916A1 (ja) 2013-02-07
US20140188451A1 (en) 2014-07-03
JPWO2013018916A1 (ja) 2015-03-05

Similar Documents

Publication Publication Date Title
JP5850054B2 (ja) 分散処理管理サーバ、分散システム、及び分散処理管理方法
JP4740897B2 (ja) 仮想ネットワーク構成方法及びネットワークシステム
CN102082692B (zh) 基于网络数据流向的虚拟机迁移方法、设备和集群系统
JP5929196B2 (ja) 分散処理管理サーバ、分散システム、分散処理管理プログラム及び分散処理管理方法
JP6214023B2 (ja) 制御サーバ、サービス提供システムおよび仮想的なインフラストラクチャの提供方法
US10305815B2 (en) System and method for distributed resource management
JP4331746B2 (ja) ストレージ装置構成管理方法、管理計算機及び計算機システム
JP5935889B2 (ja) データ処理方法、情報処理装置およびプログラム
CN103827803A (zh) 用于在存储网络中进行性能优化的计算机系统及管理系统
JP2010191670A (ja) ストレージシステム、容量管理方法、および管理計算機
JPWO2018142700A1 (ja) 制御装置、制御方法、及びプログラム
US7962650B2 (en) Dynamic component placement in an event-driven component-oriented network data processing system
JP6480955B2 (ja) 計算機システム、管理システム、及び、リソース管理方法
US9467336B2 (en) Information processing system and management method thereof
WO2013145512A1 (ja) 管理装置及び分散処理管理方法
JP7310378B2 (ja) 情報処理プログラム、情報処理方法、および情報処理装置
WO2020022018A1 (ja) リソース割当装置、リソース管理システム、および、リソース割当プログラム
JP4140014B2 (ja) クライアントサーバシステムおよびクライアントサーバシステムのデータ処理方法
US20070282880A1 (en) Partial role or task allocation responsive to data-transformative attributes
JP2012146207A (ja) 制御用計算機および情報処理システムおよび制御方法およびプログラム
WO2021157089A1 (ja) ネットワーク管理装置、方法およびプログラム
JP7365832B2 (ja) デバイス管理システム及びその制御方法
WO2023241115A1 (zh) 数据迁移方法及相关装置
JP2017174219A (ja) 情報処理システム、ストレージ装置、情報処理方法及びプログラム
CN117130733A (zh) 一种数据中台对接大数据集群的数据请求适配方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151008

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: 20151104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151117

R150 Certificate of patent or registration of utility model

Ref document number: 5850054

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150