JP2012063832A - 分散処理システム、分散処理方法、及びコンピュータプログラム - Google Patents
分散処理システム、分散処理方法、及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2012063832A JP2012063832A JP2010205469A JP2010205469A JP2012063832A JP 2012063832 A JP2012063832 A JP 2012063832A JP 2010205469 A JP2010205469 A JP 2010205469A JP 2010205469 A JP2010205469 A JP 2010205469A JP 2012063832 A JP2012063832 A JP 2012063832A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- information
- object data
- node
- rule
- 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.)
- Withdrawn
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】複数ノードを集中的に管理及び制御する特定ノードを用いない分散処理環境において、過去の処理結果に関する情報や状態を必要とする新たな処理を効率よく実現する。
【解決手段】情報送信部310は、オブジェクトデータ(OD)と、情報選択部320との接続情報と、ODのデータ項目に関する情報とに基づいて特定の情報選択部320を選択して、ODを送信する。複数の情報選択部320は、接続情報とODのデータ項目に関する情報とに基づいて、情報送信部310から送信されるODのうち自身が受信する可能性のあるODに関係するルールを選択し、選択したルールに合致するODを選択し、複数のルールと処理との組み合わせ情報を参照することにより、選択したルールに対応する処理を特定して、特定した処理、選択したルール、選択したOD、及び処理手段の接続情報に基づいて、選択したODの送り先となる処理手段330を決定する。
【選択図】図11
【解決手段】情報送信部310は、オブジェクトデータ(OD)と、情報選択部320との接続情報と、ODのデータ項目に関する情報とに基づいて特定の情報選択部320を選択して、ODを送信する。複数の情報選択部320は、接続情報とODのデータ項目に関する情報とに基づいて、情報送信部310から送信されるODのうち自身が受信する可能性のあるODに関係するルールを選択し、選択したルールに合致するODを選択し、複数のルールと処理との組み合わせ情報を参照することにより、選択したルールに対応する処理を特定して、特定した処理、選択したルール、選択したOD、及び処理手段の接続情報に基づいて、選択したODの送り先となる処理手段330を決定する。
【選択図】図11
Description
本発明は、処理対象であるデータを複数のノードを用いて記憶し、或いは処理する分散処理の技術分野に関する。特に、本発明は、それら複数のノードを集中的に管理(制御)する特定ノードを用いない分散処理の技術分野に関する。
所謂、分散処理システムにおいては、処理対象であるデータ(以下、「オブジェクトデータ」と称する)を、複数の記憶ノードに分散した状態で大量に記憶する。そして、係る分散処理システムは、記憶したオブジェクトデータを処理するに際して、複数の処理ノードを用いることにより、大量のオブジェクトデータを高速に処理する。ここで、記憶ノードは、ストレージなどのデータ記憶装置である。処理ノードは、クライアント、仮想マシン、サーバなどの演算環境である。
近年、このような分散処理システムにおいては、多数の記憶ノードが記憶したオブジェクトデータを、多数の処理ノードで処理する手法の一形態として、集中的に制御を行う固定的なノードを持たないシステム環境が提案されている。係るシステム環境では、制御のための処理が一台もしくは少数台の固定的なノードに集中することはないため、固定的なノードが正常動作するか否かに依存すること無く、多数の処理ノードによる効率的な分散処理を実現できる。
特許文献1及び参考文献1は、前述した如く、システム全体を集中的に制御する、固定的な特定ノードを用いること無く、多数の記憶ノードが記憶したオブジェクトデータを、多数の処理ノードによって処理する手法を提案する。
図13は、本発明に関連する分散処理システムのシステム構成を例示する図である。図12に示す分散処理システム100は、上述した固定的な特定ノードを用いない分散処理システムを例示しており、システム全体を集中的に制御する固定的な特定ノードを持たない多数の記憶ノードが記憶したオブジェクトデータを、多数の処理ノードによって処理するシステムである。
即ち、分散処理システム100は、マスターノード(記憶ノード)101と、複数のワーカーノード(処理ノード)110とを備える。マスターノード101は、ワーカーノード110に対して命令を出すノードであって、記憶しているオブジェクトデータを、データ分散処理部102が指定したワーカーノード110に分散配置する。複数のワーカーノード110は、マスターノード101から受信した命令に応じて処理を行うノードである。ワーカーノード110は、分散して送られてきたオブジェクトデータをデータ処理部111によって処理した後、処理結果をマスターノード101に送る。そして、マスターノード101は、個々のワーカーノード110から入手した処理結果としてのオブジェクトデータを、データ集約部103によって処理することにより、最終的な処理結果を得る。
ここで、図13に示す分散処理システム100において、例として、データベース(不図示)に含まれている特定の単語の数を数える処理を実行する場合について説明する。この処理では、まず、マスターノード101は、データベースを分割して、分割したデータベースを、データ分散処理部102の機能により、多数のワーカーノード110に分散配置する。ワーカーノード110は、マスターノード101から受信した分割状態のデータベースに含まれている特定単語の数をデータ処理部111の機能によって数え、その処理結果をマスターノード101へ返す。マスターノード101は、個々のワーカーノード110の処理結果(分割状態のデータベースに含まれる特定単語の数)を、データ集約部103の機能によって足し合わせる。この一連の処理により、分散処理システム100は、係るデータベースに記憶されている特定単語の全体数を知ることができる。この処理では、ワーカーノード110の数が増えた場合、当該データベースの分割数をより増やすことにより、より並列的な処理が可能になるので、より高速な処理が実現できる。
また、上述した手法によれば、複数の独立したマスターノード101が存在する場合であっても、個々のマスターノードは、複数のワーカーノード110からなる分散処理環境を共有することができる。
このように、上述した手法は、マスターノード101が多数存在する場合であっても対応することができる。即ち、上述したシステム構成によれば、多数の記憶ノードが記憶したオブジェクトデータを、多数の処理ノードで処理することが可能になる。また、上述したシステム構成によれば、ワーカーノード110の数が変化した場合においても柔軟に対応することが可能である。更に、上述したシステム構成は、この柔軟な分散処理を行う際に、係る分散処理を全体的に集中管理する特定ノードを必要としない。
尚、本願出願に先だって存在する関連技術としては、例えば以下の特許文献がある。
即ち、特許文献2は、他の装置からデータ処理要求(命令)を受信した際に、自ノードが実行すべき処理であるか否かを、係る自ノード自身がハッシュ値に基づくルールマッピングを用いて判断する技術を提案する。
また、特許文献3は、プログラムモジュールが実行されるノードに関する配置情報を当該プログラムモジュールの外部に記述しておき、その配置情報が変更されるのに応じて、対応するネットワークノードをハッシュを用いて決定し、決定したノードにプログラムモジュールをダウンロードして実行することにより、ネットワークノードの機能を、ダウンロードしたプログラムモジュールによって動的に変更する技術を提案する。
また、本願出願に先だって存在する関連技術として、例えば、非特許文献2がある。非特許文献2には、複数のストレージにオブジェクトデータが分散配置された状態においてストレージが増減した際、そのストレージの増減に起因して生じる、個々のオブジェクトデータの移動を最小限に抑制しつつ再配置する技術が提案されている。
"MapReduce: Simplified Data Processing on Large Clusters" Jeffrey Dean and Sanjay Ghemawat
"Consistent hashing and random trees: distributed caching protocols for relieving hot spots on the World Wide Web", David Karger, Eric Lehman, Tom Leighton, Matthew Levine, Daniel Lewin, Rina Panigrahy, 1997
ところで、非特許文献1に記載された手法では、個々のオブジェクトデータを分類することなく記憶ノード(マスターノード)に記憶している。このため、係る記憶ノードには、全ての種類のオブジェクトデータが送られてくる。よって、係る記憶ノードは、全てのオブジェクトデータの種類に対するルールを実行することにより、処理を行うべきオブジェクトデータを判定しなければならず効率が悪い。この問題は、処理ノード(ワーカーノード)が多くなるほど顕著になる。
また、非特許文献1に記載された手法では、今回行われた処理が、次回も同じ処理ノード(ワーカーノード)で実行される保証がない。このため、以前の処理結果との関連性や継続性のある処理が必要とされる場合、係る手法では、今回処理を行う処理ノードに対して、過去に行われた処理に関する情報や状態を提供しないと、今回の処理は正確に行われない。換言すれば、係る手法において、処理ノードが実行可能な処理は限られており、特定の処理ノードにおいて過去に行われた処理に関する情報や状態を利用して新たな処理を当該特定の処理ノードで行うには、その情報や状態を改め当該特定の処理ノードに提供しなければ実現することはできない。
そこで、本発明は、複数ノードを集中的に管理及び制御する特定ノードを用いない分散処理環境において、過去の処理結果に関する情報や状態を必要とする新たな処理を、効率よく実現することができる分散処理システム等を提供することを主たる目的とする。
上記の目的を達成すべく、本発明に係る分散処理システムは、以下の構成を備えることを特徴とする。
即ち、情報送信手段と、その情報送信手段に接続された複数の情報選択手段と、それら情報選択手段に接続され、処理を行う複数の処理手段とを備える分散処理システムであって、
前記情報送信手段は、
オブジェクトデータと、接続されている前記複数の情報選択手段の接続情報と、該オブジェクトデータのデータ項目に関する情報とに基づいて、前記複数の情報選択手段の中から特定の情報選択手段を選択し、選択した特定の情報選択手段に該オブジェクトデータを送信し、
前記複数の情報選択手段は、
前記接続情報と、前記オブジェクトデータのデータ項目に関する情報とに基づいて、前記情報送信手段から送信されるオブジェクトデータのうち、自情報選択手段が受信する可能性のあるオブジェクトデータを選択すると共に、予め記憶されている複数のルールのうち、該選択したオブジェクトデータに関係するルールを選択する手段と、
前記選択したルールを、前記送信されるオブジェクトデータに適用することにより、該ルールに合致するオブジェクトデータを選択する手段と、
予め記憶されている前記複数のルールと処理との組み合わせ情報を参照することにより、前記選択したルールに対応する処理を特定する手段と、
前記特定した処理の識別子、前記選択したルールの識別子、前記選択したオブジェクトデータ、及び接続されている前記複数の処理手段の接続情報に基づいて、前記複数の処理手段のうち、前記選択したオブジェクトデータの送り先となる処理手段を決定する手段とを含む
ことを特徴とする。
前記情報送信手段は、
オブジェクトデータと、接続されている前記複数の情報選択手段の接続情報と、該オブジェクトデータのデータ項目に関する情報とに基づいて、前記複数の情報選択手段の中から特定の情報選択手段を選択し、選択した特定の情報選択手段に該オブジェクトデータを送信し、
前記複数の情報選択手段は、
前記接続情報と、前記オブジェクトデータのデータ項目に関する情報とに基づいて、前記情報送信手段から送信されるオブジェクトデータのうち、自情報選択手段が受信する可能性のあるオブジェクトデータを選択すると共に、予め記憶されている複数のルールのうち、該選択したオブジェクトデータに関係するルールを選択する手段と、
前記選択したルールを、前記送信されるオブジェクトデータに適用することにより、該ルールに合致するオブジェクトデータを選択する手段と、
予め記憶されている前記複数のルールと処理との組み合わせ情報を参照することにより、前記選択したルールに対応する処理を特定する手段と、
前記特定した処理の識別子、前記選択したルールの識別子、前記選択したオブジェクトデータ、及び接続されている前記複数の処理手段の接続情報に基づいて、前記複数の処理手段のうち、前記選択したオブジェクトデータの送り先となる処理手段を決定する手段とを含む
ことを特徴とする。
また、例えば、前記複数の情報選択手段は、
前記選択したオブジェクトデータと、前記特定した処理の識別子とを、前記送り先となる処理手段に送信する手段を更に含み、
前記複数の処理手段は、
自処理手段が実行可能な処理とその処理の識別子とを記憶する手段と、
前記選択したオブジェクトデータと、前記特定した処理の識別子とを前記送り先として受信するのに応じて、前記自処理手段が実行可能な処理の識別子に基づいて、前記特定した処理の識別子に対応する処理を自処理手段が実行可能と判断した場合に、その実行可能な処理を、前記選択したオブジェクトデータに対して実行する手段とを含むとよい。
前記選択したオブジェクトデータと、前記特定した処理の識別子とを、前記送り先となる処理手段に送信する手段を更に含み、
前記複数の処理手段は、
自処理手段が実行可能な処理とその処理の識別子とを記憶する手段と、
前記選択したオブジェクトデータと、前記特定した処理の識別子とを前記送り先として受信するのに応じて、前記自処理手段が実行可能な処理の識別子に基づいて、前記特定した処理の識別子に対応する処理を自処理手段が実行可能と判断した場合に、その実行可能な処理を、前記選択したオブジェクトデータに対して実行する手段とを含むとよい。
また、上記構成において、例えば前記複数の処理手段は、
自処理手段が実行可能な処理に関して、その処理が少なくとも前回実行されたときの、処理結果及び内部状態の少なくとも何れかを記憶する手段を更に含み、
前記実行可能な処理を、前記選択したオブジェクトデータに対して実行するに際して、該実行可能な処理に関する前記処理結果及び内部状態の少なくとも何れかを参照するとよい。
自処理手段が実行可能な処理に関して、その処理が少なくとも前回実行されたときの、処理結果及び内部状態の少なくとも何れかを記憶する手段を更に含み、
前記実行可能な処理を、前記選択したオブジェクトデータに対して実行するに際して、該実行可能な処理に関する前記処理結果及び内部状態の少なくとも何れかを参照するとよい。
尚、同目的は、上記の各構成の分散処理システムに対応する分散処理方法によっても達成される。
また、同目的は、上記の各構成を有する分散処理システム、並びに対応する装置を、コンピュータによって実現するコンピュータ・プログラム、及びそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
上記の本発明によれば、複数ノードを集中的に管理及び制御する特定ノードを用いない分散処理環境において、過去の処理結果に関する情報や内部状態を必要とする新たな処理を、効率よく実現することができる分散処理システム等の提供が実現する。
次に、本発明を模範的に実施する形態について図面を参照して詳細に説明する。尚、以下に説明する実施形態は、特許請求の範囲に係る発明を限定することはなく、また実施形態の中で説明されている構成の組み合わせの全てが発明の解決機能に必須であるとは限らない。
<実施形態>
図11は、本発明の模範的な第1の実施形態に係る分散処理システムの全体構成を概念的に説明する図である。図11に示すように、分散処理システム300は、情報送信部310、その情報送信部310に接続された複数の情報選択部320、そして、それら情報選択部320に接続され、オブジェクトデータに対して処理を行う複数の処理部330を備える。
図11は、本発明の模範的な第1の実施形態に係る分散処理システムの全体構成を概念的に説明する図である。図11に示すように、分散処理システム300は、情報送信部310、その情報送信部310に接続された複数の情報選択部320、そして、それら情報選択部320に接続され、オブジェクトデータに対して処理を行う複数の処理部330を備える。
情報送信部310は、情報送信機能311を有する。この情報送信機能311は、オブジェクトデータと、接続されている複数の情報選択部320の接続情報と、該オブジェクトデータのデータ項目に関する情報とに基づいて、当該複数の情報選択部320の中から特定の情報選択部320を選択し、選択した特定の情報選択部320に該オブジェクトデータを送信する。
情報選択部320は、ルール選択機能321、オブジェクトデータ選択機能322、処理決定機能323、及び送り先決定機能324を有する。
即ち、ルール選択機能321は、情報送信部310に接続している複数の情報選択部320の接続情報と、前記オブジェクトデータのデータ項目に関する情報とに基づいて、情報送信部310から送信されるオブジェクトデータのうち、自ユニット(自情報選択部320)が受信する可能性のあるオブジェクトデータを選択する。そして、ルール選択機能321は、予め記憶されている複数のルールの中から、当該選択したオブジェクトデータに関係するルールを選択する。
オブジェクトデータ選択機能322は、ルール選択機能321によって選択したルールを、情報送信部310から送信されるオブジェクトデータに適用することにより、該ルールに合致するオブジェクトデータを選択する。
処理決定機能323は、予め記憶されている前記複数のルールと処理との組み合わせ情報を参照することにより、ルール選択機能321によって選択したルールに対応する処理を特定する。
そして、送り先決定機能324は、処理決定機能323によって特定した処理の識別子、ルール選択機能321によって選択したルールの識別子、オブジェクトデータ選択機能322によって選択したオブジェクトデータ、及び自ユニット(自情報選択部320)に接続されている複数の処理部330の接続情報に基づいて、それらの処理部330の中から、当該選択したオブジェクトデータの送り先となる処理部330を決定する。
処理部330は、上記特定の情報選択部320から受信したオブジェクトデータに、対応する処理を施す処理機能331を有する。
上述した構成を備える分散処理システム300は、複数ノードを集中的に管理及び制御する特定ノードを用いない分散処理環境である。しかしながら、本実施形態に係る分散処理システム300によれば、情報送信部310は、特定の情報選択部320にオブジェクトデータを送信する。そして、その特定の情報選択部320は、送られてくるオブジェクトデータの中からルールに基づいてオブジェクトデータを選択すると共に、選択したオブジェクトデータを実行すべき処理部330を決定することができる。このため、分散処理システム300によれば、処理部が分散配置されていても、オブジェクトデータに応じて、そのオブジェクトデータを処理すべき処理部を的確に判断することができる。従って、過去の処理結果に関する情報や内部状態を必要とする新たな処理を、効率よく実現することができる
次に、上述した第1の実施形態に係る分散処理システム300を基本とする第2の実施形態について説明する。
次に、上述した第1の実施形態に係る分散処理システム300を基本とする第2の実施形態について説明する。
図1は、本発明の模範的な第2の実施形態に係る分散処理システムの全体構成を概念的に説明する図である。図2は、本発明の模範的な第2の実施形態に係る分散処理システムのうち、各ノードの内部構成を示すブロック図である。
図1及び図2に示す分散処理システム200は、複数のオブジェクトデータ(50)を分散配置された処理ノードにおいて処理するシステムである。但し、分散処理システム200は、一旦記憶したオブジェクトデータをその後処理する分散処理システムではなく、送られてくるオブジェクトデータを記憶するのと並行して処理する分散処理システムである。
本実施形態においても、上述した背景技術と同様に、処理対象であるデータを、オブジェクトデータと称する。オブジェクトデータは、係るデータと、そのデータに固有な情報(メタデータ)とを含む。オブジェクトデータは、数値データ、或いは所定の処理(プロセス、機能、アルゴリズム)が記述されたソフトウェアプログラム(コンピュータプログラム)の少なくとも何れかを構成する。
図1に示すように、分散処理システム200は、複数の送信ノード210、複数の記憶ノード220、複数の処理ノード230、及び複数の受信ノード240を備える。送信ノード210は、上述した情報選択部310に相当する機能を含む。上述した記憶ノード220は、情報選択部320に相当する機能を含む。そして処理ノード230は、上述した処理部330に相当する機能を含む。本実施形態に係る4種類の複数ノードは、互いに通信可能に接続されている。ここで、これら4種類のノードについて概説する。
送信ノード210は、外部から入力された入力データ40に対して分類を行い、その分類によって特定した記憶ノード220に対して、入力データ40のうち、処理対象となるデータセットとして、オブジェクトデータ50を送る。即ち、本実施形態において、入力データ40とオブジェクトデータ50とは必ずしも一致しない。
記憶ノード220は、送信ノード210から送られてきたオブジェクトデータ50を記憶すると共に、ルールに合致したオブジェクトデータのみを、そのルールに合致する処理ノード230に送る。ここで、ルールは、オブジェクトデータの内容及びオブジェクトデータに対して行いたい処理によって全く異なる。このため、本実施形態では、ルール自体がどのような情報であってどのような規則や規範を表すのかについては詳細な説明を省略する。
処理ノード230は、記憶ノード220から送られてきたオブジェクトデータに対して、そのオブジェクトデータに対応する処理を施すと共に、処理結果を受信ノード240に送る。処理ノード230にて実行される処理には、多種多用な処理が想定される。このため、本実施形態では、処理自体がどのような情報に対してどのような内容の処置を施すのかについては詳細な説明を省略する。
そして、受信ノード240は、処理ノード230から処理結果を受信する。本実施形態において、受信ノード240は、処理結果を受信できれば、その他に備えるべき機能は限定されない。例えば、受信ノード240は、図13を参照して上述した分散処理システム100におけるマスターノード101が備えるデータ集約部103の機能を有してもよい。或いは、分散処理システム200は、例えば、受信ノード240を備えておらず、処理ノード230による処理結果を、はじめに入力データ40を受信した送信ノード210に送るシステム構成であってもよい。即ち、受信ノード240は、説明の便宜上から設けたノードである。
上述したように、本実施形態では、分散処理システム200を、説明の便宜上から、上記の如く4種類のノードによって構成した例を説明する。但し、本発明を実施する場合、図1及び図2に例示する構成には限定されず、例えば、所謂仮想マシン環境において、これらのノードの一部或いは全部の機能を実現してもよい。尚、係る分散処理システム200を実現するハードウェア構成の例については、図12を参照して後述する。
次に、主に図2以降の各図面を参照して、分散処理システム200の詳細について説明する。
(送信ノード210)
送信ノード210は、記憶ノード状態記憶機能211、記憶ノード決定機能212、及び記憶データ情報記憶機能213を備える。
送信ノード210は、記憶ノード状態記憶機能211、記憶ノード決定機能212、及び記憶データ情報記憶機能213を備える。
送信ノード210は、記憶ノード状態記憶機能211により、記憶ノード220の接続情報を記憶している。送信ノード210は、記憶データ情報記憶機能213により、記憶ノード220を決定する際に参照する、オブジェクトデータのデータ項目に関する情報(以下、「データ項目情報DII」と略称する場合がある)を記憶している。
即ち、図5Aは、送信ノードが予め記憶している情報を説明する図である。図5Aに示すように、記憶ノード220の接続情報とは、送信ノード210に接続されている記憶ノード220に関する情報である。この接続情報は、例えば分散処理システム200を構成する各ノードがIPアドレスで特定される場合、図6に概念的に例示するように、ノードの識別子(ノードID)と、通信ネットワーク上におけるアドレスとがノード毎に関連付けされた情報である。一方、データ項目情報DIIは、オブジェクトデータを構成する情報項目のうち、そのオブジェクトデータを記憶すべき記憶ノード220を決定する際に参照するデータ項目を指定する情報である。
そして、記憶ノード決定機能212は、上記のデータ項目情報DIIと、接続情報とに基づいて、入力データ40を参照することにより、所定のアルゴリズムを利用して、当該入力データを、オブジェクトデータ(50)として分類することにより、そのオブジェクトデータを格納(記憶)すべき記憶ノード220を一意に(1つ)決定する。係る分類方法としては、オブジェクトデータを構成するところの、単数もしくは複数のデータ項目に含まれる情報を元に分類する方法などが考えられる。また、分類に使用するアルゴリズムとしては、例えば、非特許文献2に記載されているConsistent Hashingなどを使用することができる。
送信ノード210において、記憶ノード決定機能212は、上記の如くオブジェクトデータ50を格納すべき記憶ノード220を一意に(1つ)決定すると共に、決定した記憶ノード220に対して、当該分類されたオブジェクトデータ50を送信する。
ところで、送信ノード210において、記憶ノード決定機能212による記憶ノードの決定アルゴリズムは、記憶ノード220が増減した際に、オブジェクトデータの記憶先を、記憶ノード220の増減に起因して変更された接続情報に応じて変更可能であることが求められる。また、係る決定アルゴリズムは、オブジェクトデータ、記憶データ情報記憶機能213によって記憶されている分類方法、そして記憶ノード状態記憶機能211によって記憶されている記憶ノードの接続情報に基づいて、記憶ノード220を一意に決定可能である必要がある。そして、係る決定アルゴリズムには、例えば、非特許文献2に記載されているConsistent Hashingなどを使用することができる。但し、本実施形態に係る分散処理システム200においては、本システムを構成している記憶ノード220及び処理ノード230の少なくとも何れかが正に動的に変化している最中には、以下に説明する動作を実現することはできず、係る動作は、各ノードに必要な各種の情報が構成変化後の各ノードに配置された後に実現することができる。
(記憶ノード220)
次に、記憶ノード220は、データ記憶機能221、ルール実行機能222、記憶ノード状態記憶機能223、実行ルール判断機能224、記憶データ状態記憶機能225、処理識別子記憶機能226、送り先判断機能227、処理ノード状態記憶機能228、及びルール記憶機能229を備える。
次に、記憶ノード220は、データ記憶機能221、ルール実行機能222、記憶ノード状態記憶機能223、実行ルール判断機能224、記憶データ状態記憶機能225、処理識別子記憶機能226、送り先判断機能227、処理ノード状態記憶機能228、及びルール記憶機能229を備える。
記憶ノード220は、データ記憶機能221を利用して、上述した如く送信ノード210から送られてきたオブジェクトデータ50を記憶すると共に、記憶したオブジェクトデータを、ルール実行機能222へ送る。
記憶ノード220は、記憶ノード状態記憶機能223により、記憶ノード220の接続情報を記憶している。記憶ノード220は、記憶データ状態記憶機能225により、記憶ノード220を決定する際に参照するオブジェクトデータのデータ項目に関する情報(データ項目情報DII)を記憶している。記憶ノード220は、処理識別子記憶機能226により、ルール識別子と処理識別子との組み合わせ情報を記憶している。ここで、ルール識別子とは、記憶ノード220にて選択されるルールを識別(特定)する情報(識別子)である。処理識別子とは、処理ノード230にて実行されるべき処理を識別(特定)する情報(識別子)である。
記憶ノード220は、処理ノード状態記憶機能228により、処理ノード230の接続情報を記憶している。そして、記憶ノード220は、ルール記憶機能229により、処理ノード230に送るべきオブジェクトデータを決定するためのルールを保持している。係るルールは、ルールの識別子によって判別可能である。
即ち、図5Bは、記憶ノードが予め記憶している情報を説明する図である。図5Bに示すように、記憶ノード220の接続情報とは、送信ノード210に接続されている記憶ノード220に関する情報(図6)であり、送信ノード210が記憶ノード状態記憶機能211によって保持している情報と同じである。データ項目情報DIIについても、送信ノード210が記憶データ情報記憶機能213によって保持している情報と同じである。
本実施形態において、ルールとは、図5Bに定義するように、処理ノード230にて処理すべきオブジェクトデータを選択するためのルール(条件)であって、使用する可能性のある全てのルールが用意されている。ルールの識別子(ルール識別子、ルールID)とは、上記個々のルールに固有の識別子である。そして、ルール識別子と処理識別子との組み合わせ情報とは、ルールの識別子と、そのルールに対応する処理の処理識別子とが関連付けされた(組み合わされた)情報である。処理ノード230の接続情報とは、記憶ノード220に接続されている処理ノード230に関する情報であり、その実体は、上述した記憶ノード220の接続情報と同様に、通信ネットワーク上におけるアドレスがノード毎に関連付けされた情報(図6)である。
そして、実行ルール判断機能224は、上述したところの、記憶ノード220の接続情報と、データ項目情報DIIとに基づいて、所定のアルゴリズムを利用して、記憶ノード220に送られてくる可能性があるオブジェクトデータを選択する。そして、実行ルール判断機能224は、ルール記憶機能229によって記憶しているルールの中から、当該一意に選択したオブジェクトデータに関係するルールを選択(判断)する。そして、実行ルール判断機能224は、選択したルールと、そのルールのルール識別子とをルール実行機能222へ送る(図3及び図7を参照して後述する)。
ルール実行機能222は、実行ルール判断機能224によって選択されたルールを実行することにより、データ記憶機能221に記憶しているオブジェクトデータの中から、当該ルールに合致するオブジェクトデータを選択する(図3及び図8を参照して後述する)。このとき選択したオブジェクトデータは、処理ノード230に送るべきデータである。そこで、ルール実行機能222は、選択したオブジェクトデータと、そのオブジェクトデータを選択するときに利用したルールのルール識別子とを、送り先判断機能227に送る。
送り先判断機能227は、処理識別子記憶機能226によって保持されているルール識別子と処理識別子との組み合わせ情報の中から、ルール実行機能222から入手したルール識別子に対応する一意(1つ)の組み合わせ情報を選択する。次に、送り先判断機能227は、当該ルールによって選ばれたオブジェクトデータ、そのオブジェクトデータを選んだルールのルール識別子、処理識別子(当該一意に選択した組み合わせ情報に含まれる処理識別子)、処理ノード状態記憶機能228によって保持されている処理ノードの接続情報に基づいて、当該ルールによって選ばれたオブジェクトデータの処理を実行すべき処理ノード230を一意(1つ)に決定する。そして、送り先判断機能227は、当該一意に決定した処理ノード230(以下、「送り先処理ノード」と称する場合がある)に対して、当該選択されたオブジェクトデータと、処理識別子とを送る(図3及び図9を参照して後述する)。
本実施形態において、送り先判断機能227による処理ノード230(送り先処理ノード)の判断は、処理識別子と、処理ノード230の接続情報とが変化しない限り、常に同じ送り先処理ノードを選択する。
(処理ノード230)
処理ノード230は、処理記憶機能231、処理識別子生成機能232、処理識別子記憶機能233と、処理判断機能234、及びデータ処理機能235を備える。処理ノード230は、上記の如く記憶ノード220から受信したオブジェクトデータに対して、そのオブジェクトデータに必要な処理を施す。
処理ノード230は、処理記憶機能231、処理識別子生成機能232、処理識別子記憶機能233と、処理判断機能234、及びデータ処理機能235を備える。処理ノード230は、上記の如く記憶ノード220から受信したオブジェクトデータに対して、そのオブジェクトデータに必要な処理を施す。
即ち、図5Cは、処理ノードが予め記憶している情報を説明する図である。処理ノード230は、処理記憶機能231により、処理ノード230で実行される全ての処理(処理プログラム)を記憶している。更に、処理ノード230は、処理記憶機能231により、記憶している処理と関連付けて、その処理が少なくとも前回実行されたときの、処理結果を表す情報及び内部状態を表す情報を記憶することができる。即ち、処理記憶機能231は、係る処理の処理内容によっては、その処理が少なくとも前回実行されたときの、処理結果を表す情報及び内部状態を表す情報の少なくとも何れかを記憶している場合がある。
処理識別子生成機能232は、処理記憶機能231によって記憶されている処理に基づいて、その処理の処理識別子を生成する。一般に、ある処理の識別子として用いられる情報には、その処理のプログラムをハッシュした情報が採用される。そこで、本実施形態においても、係る処理識別子は、このような情報を採用することとする。処理ノード230は、処理識別子生成機能232によって生成された処理識別子を、処理識別子記憶機能233によって記憶している。
そして、処理判断機能234は、処理識別子記憶機能233によって記憶している処理識別子を参照することにより、記憶ノード220から受信したオブジェクトデータに付随する処理識別子とに合致する処理を、自処理ノードが実行すべき処理と判断する。そこで、処理判断機能234は、処理記憶機能231によって記憶している複数の処理の中から、当該実行すべきと判断した処理を選択し、選択した処理を、当該受信したオブジェクトデータと共にデータ処理機能235に送る(詳細は図4及び図10を参照して後述する)。データ処理機能235は、処理判断機能234から入手したオブジェクトデータに対して、当該選択された処理を施す。そして、データ処理機能235は、処理結果を、受信ノード240に送信する。
次に、上述した記憶ノード220が実行する一連の処理について、図3、図7乃至図9を参照して説明する。
図3は、第2の実施形態において記憶ノード220が実行する制御処理を示すフローチャートである。図7は、図3に示すフローチャートのうち、ステップS302の詳細を示すフローチャートである。図8は、図3に示すフローチャートのうち、ステップS303の詳細を示すフローチャートである。図9は、図3に示すフローチャートのうち、ステップS304の詳細を示すフローチャートである。
ステップS301:記憶ノード220は、データ記憶機能221を利用して、送信ノード210から、分類された状態のオブジェクトデータ50を受信し、受信したオブジェクトデータ50を記憶すると共に、記憶したオブジェクトデータを、ルール実行機能222へ送る。
ステップS302:記憶ノード220は、ルール記憶機能229によって全てのルールを記憶している。本ステップにおいて、記憶ノード220は、記憶ノード220の接続情報と、データ項目情報DIIとに基づいて、所定のアルゴリズムを利用して、ルール記憶機能229によって記憶しているルールの中から、記憶ノード220に送られてくる可能性があるオブジェクトデータを一意に(1つ)選択する。そして、当該全てのルールの中から、当該一意に選択したオブジェクトデータに関係するルールを選択する(判断)する。ここで、ステップS302の詳細を図7を参照して説明する。
本実施形態において、ルール記憶機能229は、係る所定のアルゴリズムとして、受信情報算出アルゴリズムと、実行ルール判断アルゴリズムとを有する。受信情報算出アルゴリズム及び実行ルール判断アルゴリズムには、例えば、非特許文献2に記載されているConsistent Hashingなどを使用することができる。
実行ルール判断機能224は、まず、記憶データ情報記憶機能225によって記憶しているデータ項目情報DIIと、記憶ノード状態記憶機能223によって記憶している記憶ノード220の接続情報とを読み込む(ステップS3021,S3022)。
そして、ルール記憶機能229は、ステップS3021,S3022にて読み込んだ情報を、係る受信情報算出アルゴリズムに入力し、該アルゴリズムを実行することにより、記憶ノード220(自ノード)に送られてくる情報が、その記憶ノードを記憶すべき記憶ノード220として決定する際に参照するオブジェクトデータのデータ項目の中に持つ、全パターンの情報を算出する(ステップS3023,S3024)。
そして、ルール記憶機能229は、ルール記憶機能229によって記憶している全てのルールの中から、ステップS3024にて求めた情報によって実行結果が変化するルールを、実行ルール判断アルゴリズムを実行することによって判断(選択)する(ステップS3025〜ステップS3027)。ステップS3027にて選択されたルールは、当該記憶ノード220(自ノード)において実行すべきルールである。
即ち、送信ノード210から送られてくるオブジェクトデータ50は、送信ノード210が記憶ノード状態記憶機能211によって記憶している記憶ノード220の接続情報と、記憶データ情報記憶機能213によって記憶している分類方法によって決定した特定のデータのみである。これらの情報と同じ情報は、記憶ノード状態記憶機能223と、記憶データ情報記憶機能225とによって記憶ノード220においても記憶されている。このため、記憶ノード220は、送信ノード210から送られてくるオブジェクトデータ50を判断することが可能であり、実行すべきルールを、そのオブジェクトデータが選択に影響を与える可能性があるルールに限定することができる。
実行ルール判断機能224は、選択したルールと、そのルールのルール識別子とをルール実行機能222へ送る。
ステップS303:ルール実行機能222は、データ記憶機能221によって送られてきたオブジェクトデータを、ステップS302にて選択されたルールに基づいて処理する(図8のステップS3031〜ステップS3033)。そして、ルール実行機能222は、処理ノード240で処理すべきオブジェクトデータと、そのオブジェクトデータを選んだルールのルール識別子とを、送り先判断機能227に送る(図8のステップS3034)。また、ルール実行機能222は、処理ノード状態記憶機能228によって記憶している処理ノード230の接続情報を、送り先判断機能227に送る。
ステップS304:送り先判断機能227は、ステップS303にて得られた処理識別子と、処理ノード230の接続情報とに基づいて、その処理識別子と関連付けされたルールによって選ばれたオブジェクトデータの処理が、どの処理ノード230(送り先処理ノード)で行われるか判定する。ここで、ステップS304の詳細を図9を参照して説明する。
即ち、送り先判断機能227は、S303にて得られたオブジェクトデータとルール識別子との組み合わせ情報と、処理識別子記憶機能226によって記憶している、ルール識別子と処理識別子との組み合わせ情報とを照合し(ステップS3041〜ステップS3043)、それら組み合わせ情報の中から、同じルール識別子を持ったオブジェクトデータと処理識別子との組み合わせを生成する(ステップS3044)。
そして、送り先判断機能227は、ステップS3044にて生成した組み合わせに含まれる処理識別子と、処理ノード状態記憶機能228に記憶されている処理ノード240の接続情報とに基づいて分散配置アルゴリズムを用いることにより(ステップS3045,ステップS3046)、当該オブジェクトデータの送り先処理ノードを決定する(ステップS3047)。係る分散配置アルゴリズムには、例えば、処理識別子と、処理ノード240で処理されるオブジェクトデータの送り先処理ノードの識別子のハッシュを元に、非特許文献2に記載されているConsistent Hashingなどを採用することができる。
ステップS305:送り先判断機能227は、処理識別子とオブジェクトデータとを、ステップS304にて決定した送り先処理ノードに送る。
次に、上述した処理ノード230が実行する一連の処理について、図4及び図10を参照して説明する。
図4は、第2の実施形態において処理ノード230が実行する制御処理を示すフローチャートである。図10は、図4に示すフローチャートのうち、ステップS403の詳細を示すフローチャートである。
ステップS401:処理識別子生成機能232は、処理記憶機能231によって記憶されている処理に基づいて、処理を実行する処理ノード230を決定するために用いられる処理識別子を算出する。
ステップS402:処理識別子記憶機能233は、ステップS401にて算出した処理識別子を記憶する。
ステップS403:処理判断機能234は、記憶ノード220からオブジェクトデータを入手すると、処理識別子記憶機能233によって記憶されている処理識別子と、当該オブジェクトデータと共に記憶ノード220から今回入手した処理識別子とを利用して、当該記憶ノード220から今回入手した処理識別子に対応する処理を、自ノードにて実行すべき処理と判断する。
即ち、ステップS403において、処理判断機能234は、自ノードに今回入手したオブジェクトデータと処理識別子との組み合わせ情報と、処理識別子記憶機能233によって記憶している処理と処理識別子との組み合わせ情報とを照合する(図10のステップS4031〜ステップS4033)。そして、処理判断機能234は、当該2種類の組み合わせ情報のうち、同じ処理識別子と組み合わされている、オブジェクトデータと処理とを新たに組み合わせて、データ処理機能235に送る(図10のステップS4034)。
ステップS404:データ処理機能235は、処理判断機能234から入手したオブジェクトデータと処理とを組み合わせを対象として、そのオブジェクトデータに対して、当該処理を実行する。当該処理の実行に際しては、処理記憶機能231によって記憶されている当該処理の処理プログラムが読み出され、データ処理機能235にて実行される。その際、データ処理機能235は、当該処理プログラムと共に記憶されているところの、当該処理プログラムが少なくとも前回実行されたときの、処理結果を表す情報及び内部状態を表す情報の少なくとも何れかの情報を参照する。そして、データ処理機能235は、当該処理プログラムの今回の実行結果を表す情報及び内部状態を表す情報を表す情報の少なくとも何れかの情報を新たに記憶するように、処理記憶機能231に指示する。
ステップS405:データ処理機能235は、ステップS404にて得られた処理の実行結果を、受信ノード240に送る。
以上説明した処理を行う第2の実施形態に係る分散処理システム200において、記憶ノード220にて処理識別子記憶機能226によって記憶している処理識別子は、処理ノード230にて処理識別子記憶機能233によって記憶している処理識別子に含まれている。そして、記憶ノード220にて処理ノード状態記憶機能228によって記憶している処理ノード230の接続情報は、全ての記憶ノード220において共有(共通)されている。また、処理ノード230(送り先処理ノード)を一意に判断する判断アルゴリズムは、全ての記憶ノード220において共有(共通)されている。このため、本実施形態に係る分散処理システム200によれば、各ノードに必要な各種の情報にノードの増減に伴う変更が正確に反映された状況である限り、同じルールによって選ばれたオブジェクトデータであれば、何れの記憶ノード220においてルールによって選ばれた場合であっても、同じ送り先処理ノードにて実行することができる。
即ち、本実施形態によれば、全ての記憶ノード220において処理ノード状態記憶機能228によって記憶している処理ノード230の接続情報が同一の場合、同じ処理は、常に同じ処理ノード230において実行することができる。従って、本実施形態によれば、複数ノードを集中的に管理及び制御する特定ノードを用いない分散処理環境において、過去の処理情報に基づく新たな処理(即ち、過去の処理結果に関する情報や内部状態を必要とする新たな処理)を、効率よく実現することができる。
尚、上述した実施形態においては、説明の便宜上から、送信ノード210による記憶ノード220の選択、並びに選択された記憶ノードによる処理ノード230の選択に際して、何れの場合も1つのノードを選択した。しかしながら、本発明を実施する形態は1つのノードの選択には限定されない。即ち、記憶ノード220や処理ノード230が所謂ミラー構成である場合、上述した分散処理システム200は、係るミラー構成を採る複数のノードを選択するように構成してもよい。但し、係る構成の場合には、選択されたミラー構成を採る複数のノードのうち、何れのノードが今回の動作時点におけるプライマリーノードであるかを判断可能な情報を、ノード間において共有する必要がある。
<実施例>
次に、上述した実施形態に係る分散処理システムの実施例について説明する。以下に説明する実施例では、本発明の模範的な実施形態に係る分散処理システムを、株式価格(株価情報)の値動きを解析する場合に適用する。
次に、上述した実施形態に係る分散処理システムの実施例について説明する。以下に説明する実施例では、本発明の模範的な実施形態に係る分散処理システムを、株式価格(株価情報)の値動きを解析する場合に適用する。
本実施例に係る分散処理システムは、複数の株式銘柄を対象として、オブジェクトデータとしての株価情報を分散して記憶ノード220に記憶し、選択した株式銘柄もしくは株式銘柄のグループに対して、対応する処理ノード230において所定の処理を行う。
即ち、送信ノード210は、入力データ40として、各株式銘柄の価格情報をリアルタイムに受信している。送信ノード210は、記憶ノード状態記憶機能211により、記憶ノード220の識別子とネットワークアドレスとを記憶している。また、送信ノード210は、記憶データ情報記憶機能213により、記憶ノード220を決定する際に参照するオブジェクトデータのデータ項目に関する情報(データ項目情報DII)として、株式銘柄を記憶するカラム内の情報(銘柄名(株式銘柄の識別子など)を記憶している。記憶ノード決定機能212は、これらの情報に基づいて、株価情報を記憶すべき記憶ノード220を決定する。
送信ノード210は、まず、記憶データ情報記憶機能213によって記憶している、株式銘柄を記憶するカラム内の情報を元に、その情報に対応する株式銘柄の価格情報を、送信ノード210がリアルタイムに受信している各株式銘柄の価格情報の中から抽出する。
そして、送信ノード210は、当該抽出した株式銘柄の価格情報と、記憶ノード状態記憶機能211によって記憶している、記憶ノード220の識別子に基づいて、係るリアルタイムな価格情報(時価情報)を記憶すべき記憶ノード220を決定する。記憶ノード220の決定に際して記憶ノード決定機能212にて実行されるアルゴリズムには、記憶ノード220の識別子をハッシュした情報と、株式銘柄の価格情報をハッシュした情報とに基づいて、例えば、非特許文献2に記載されているConsistent Hashingなどで処理するアルゴリズムが挙げられる。
送信ノード210から記憶ノード220に送られてくる株式価格は、それぞれの記憶ノード220において、送信ノード210の記憶ノード決定機能212によって決めた株式銘柄の価格情報のみである。このため、記憶ノード220で記憶しているオブジェクトデータから処理ノード230で処理するオブジェクトデータを抽出するルールを実行する際には、その記憶ノード220で記憶する株式銘柄が関係するルールのみを実行すればよい。
上述したように本実施例において、記憶データ情報記憶機能225は、株式銘柄を記憶するカラム内の情報を元にその株式銘柄に関する情報を提供すべき記憶ノード220が決定されることを認識可能である。このため、この記憶ノード220が価格情報を記憶する株式銘柄は、記憶ノード状態記憶機能223によって記憶している、オブジェクトデータを受信可能な記憶ノード220の識別子と、株式銘柄を記憶するカラムが記憶し得る情報とを元に、記憶ノード決定機能212と同様のアルゴリズムによって判断できる。
そして、実行ルール判断機能224は、ルール記憶機能229によって記憶している全ルールの中から、この記憶ノード220が価格情報を記憶している株式銘柄に関係するルールを選択し、選択したルールをルール実行機能222に送る。
ルール実行機能222は、選択されたルールを、送信ノード210から送られてきてデータ記憶機能221によって記憶しているオブジェクトデータを対象として実行する。そして、ルール実行機能222は、処理ノード230に送る必要があると判断したオブジェクトデータを、そのオブジェクトデータを選んだルールの識別子と共に送り先判断機能227へ送る。
本実施例において、ルールは、株式銘柄毎に株式価格の値動きを抽出するルール、業種毎に株式価格の値動きを抽出するルール、条件にあった株式銘柄のみについて株式価格の値動きを抽出するルールなどが考えられる。ルールによっては特定の記憶ノード220のみでそのルールを実行することにより、必要な全ての情報を処理ノード230(送り先処理ノード)へ送ることができるため、株式価格の値動きを抽出する負荷が軽減される。
記憶ノード220において、処理識別子記憶機能226は、処理を識別するための処理識別子と、その処理で必要になるオブジェクトデータを集める(指定する)ために適用されるルールのルール識別子とを保存している。処理ノード状態記憶機能228は、記憶ノード220に接続されている処理ノード230の接続情報として、オブジェクトデータを送信可能な処理ノード230のノード識別子と、ネットワークアドレスとを保存している(図6参照)。
送り先判断機能227は、処理識別子記憶機能226によって記憶している処理識別子、その処理識別子に対応する処理に必要なオブジェクトデータを集めるためのルールのルール識別子、そして、ルール実行機能222から送られてきたルール識別子とオブジェクトデータとを利用して、そのオブジェクトデータに対応する処理の処理識別子を求める。更に、送り先判断機能227は、求めた処理識別子、処理ノード状態記憶機能228によって記憶しているオブジェクトデータ、そして、送信可能な処理ノード230の識別子をアルゴリズムに入力し、そのオブジェクトデータの処理を実行する処理ノード230(送り先処理ノード)を判断する。係るアルゴリズムとしては、処理識別子とオブジェクトデータを送信可能な処理ノード230の識別子とをハッシュした情報を元に、非特許文献2に記載されている、Consistent Hashingなどで処理するアルゴリズムが挙げられる。そして、送り先判断機能227は、係る処理識別子とオブジェクトデータとを、選択した処理ノード230(送り先処理ノード)に送る。
処理ノード230の処理記憶機能231は、処理ノード230で実行される全ての処理を記憶している。本実施例の場合、処理識別子生成機能232は、処理記憶機能231によって記憶している株式価格の値動きに対する処理を元に、その処理を識別するための処理識別子を生成する。係る処理識別子の生成方法としては、当該処理の処理プログラムをハッシュする方法などが考えられるがこの限りではない。
処理ノード230において処理識別子生成機能232が生成した処理識別子は、処理識別子記憶機能233によって記憶される。そして、記憶ノード220において処理識別子記憶機能226によって記憶している処理識別子は、係る処理識別子記憶機能233によって記憶している処理識別子に含まれる。
処理ノード230において処理判断機能234は、まず、処理識別子記憶機能233によって記憶している処理識別子と、記憶ノード220から送られてきたオブジェクトデータに付随する処理識別子を用いて、自ノードが送り先処理ノードとして実行すべき処理を判断する。そして処理判断機能234は、係る実行すべき処理と、記憶ノード220から送られてきたオブジェクトデータとを、データ処理機能235に送る。
データ処理機能235は、処理判断機能234から入手したオブジェクトデータに対して、係る実行すべき処理を行う。実行すべき処理としては、例えば、前回値と今回値との差分に基づく株式価格の増減率などの演算処理が想定される。そして、データ処理機能235は、当該処理の実行結果を、受信ノード240に送信する。
本実施例において、各処理は、記憶ノード220がオブジェクトデータを送信可能な処理ノード230の接続状態に変化がない限り、必ず同じ処理ノードで継続して実行される。そのため、当該各処理は、過去の処理結果に関する情報や状態を保持することが可能であるので、過去の情報や状態を再送することなく、過去の株式価格の値動きなどの情報を元に、当該同一の処理の実行が可能になる。
(ハードウェア構成例)
上述した実施形態及び実施例において図面に示した各機能は、ソフトウェアプログラムの機能単位(ソフトウェアモジュール)と捉えることができる。この場合のハードウェア環境の一例を、図12を参照して説明する。
上述した実施形態及び実施例において図面に示した各機能は、ソフトウェアプログラムの機能単位(ソフトウェアモジュール)と捉えることができる。この場合のハードウェア環境の一例を、図12を参照して説明する。
図12は、本発明の模範的な実施形態及びその実施例に係る分散処理システム、或いはその分散処理システムを構成するノードを実行可能なハードウェア構成を例示的に説明する図である。即ち、図12は、図11に示した分散処理システム300、或いは、図1及び図2に示した分散処理システム200の全体または一部のノードを実現可能なコンピュータの構成であって、上述した実施形態及びその実施例における各機能を実現可能なハードウェア環境を表す。
図12に示したハードウェアは、CPU11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ハードディスク(記憶装置)14、並びに外部装置との通信インタフェース(I/F)15を備え、これらの構成がバス(通信線)16を介して接続された一般的なコンピュータである。ここで、係るハードウェアが記憶ノード(ストレージ)220の場合、ハードディスク(HDD)14自体が上述した実施形態及びその実施例における記憶ノード220として機能する場合も想定される。
そして、上述した実施形態及びその実施例を例に説明した本発明は、図12に示したハードウェアに対して、その説明において参照したブロック構成図(図2、図11)或いはフローチャート(図3、図4、図7乃至図10)の機能を実現可能なコンピュータプログラムを供給した後、そのコンピュータプログラムを、当該ハードウェアのCPU11に読み出して実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な一時記憶メモリ(13)またはハードディスク装置(14)等の記憶デバイスに格納すれば良い。
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、CD−ROM等の各種記録媒体を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等のように、現在では一般的な手順を採用することができる。そして、このような場合において、本発明は、係るコンピュータプログラムのコード或いは記憶媒体によって構成される。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。そのような変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
10 ノード
11 CPU
12 RAM
13 ROM
14 ハードディスク装置(HDD)
15 通信インタフェース(I/F)
40 入力データ
100,200,300 分散処理システム
101 マスターノード
102 データ分散処理部
103 データ集約部
110 ワーカーノード
111 データ処理部
210 送信ノード
211 記憶ノード状態記憶機能
212 記憶ノード決定機能
213 記憶データ情報記憶機能
220 記憶ノード
221 データ記憶機能
222 ルール実行機能
223 記憶ノード状態記憶機能
224 実行ルール判断機能
225 記憶データ情報記憶機能
226 処理識別子記憶機能
227 送り先判断機能
228 処理ノード状態記憶機能
229 ルール記憶機能
230 処理ノード
231 処理記憶機能
232 処理識別子生成機能
233 処理識別子記憶機能
234 処理判断機能
235 データ処理機能
240 受信ノード
310 情報送信部
311 情報送信機能
320 情報選択部
321 ルール選択機能
322 オブジェクトデータ選択機能
323 処理決定機能
324 送り先決定機能
330 処理部
331 処理機能
11 CPU
12 RAM
13 ROM
14 ハードディスク装置(HDD)
15 通信インタフェース(I/F)
40 入力データ
100,200,300 分散処理システム
101 マスターノード
102 データ分散処理部
103 データ集約部
110 ワーカーノード
111 データ処理部
210 送信ノード
211 記憶ノード状態記憶機能
212 記憶ノード決定機能
213 記憶データ情報記憶機能
220 記憶ノード
221 データ記憶機能
222 ルール実行機能
223 記憶ノード状態記憶機能
224 実行ルール判断機能
225 記憶データ情報記憶機能
226 処理識別子記憶機能
227 送り先判断機能
228 処理ノード状態記憶機能
229 ルール記憶機能
230 処理ノード
231 処理記憶機能
232 処理識別子生成機能
233 処理識別子記憶機能
234 処理判断機能
235 データ処理機能
240 受信ノード
310 情報送信部
311 情報送信機能
320 情報選択部
321 ルール選択機能
322 オブジェクトデータ選択機能
323 処理決定機能
324 送り先決定機能
330 処理部
331 処理機能
Claims (10)
- 情報送信手段と、その情報送信手段に接続された複数の情報選択手段と、それら情報選択手段に接続され、処理を行う複数の処理手段とを備える分散処理システムであって、
前記情報送信手段は、
オブジェクトデータと、接続されている前記複数の情報選択手段の接続情報と、該オブジェクトデータのデータ項目に関する情報とに基づいて、前記複数の情報選択手段の中から特定の情報選択手段を選択し、選択した特定の情報選択手段に該オブジェクトデータを送信し、
前記複数の情報選択手段は、
前記接続情報と、前記オブジェクトデータのデータ項目に関する情報とに基づいて、前記情報送信手段から送信されるオブジェクトデータのうち、自情報選択手段が受信する可能性のあるオブジェクトデータを選択すると共に、予め記憶されている複数のルールのうち、該選択したオブジェクトデータに関係するルールを選択する手段と、
前記選択したルールを、前記送信されるオブジェクトデータに適用することにより、該ルールに合致するオブジェクトデータを選択する手段と、
予め記憶されている前記複数のルールと処理との組み合わせ情報を参照することにより、前記選択したルールに対応する処理を特定する手段と、
前記特定した処理の識別子、前記選択したルールの識別子、前記選択したオブジェクトデータ、及び接続されている前記複数の処理手段の接続情報に基づいて、前記複数の処理手段のうち、前記選択したオブジェクトデータの送り先となる処理手段を決定する手段とを含む
ことを特徴とする分散処理システム。 - 前記複数の情報選択手段は、
前記選択したオブジェクトデータと、前記特定した処理の識別子とを、前記送り先となる処理手段に送信する手段を更に含み、
前記複数の処理手段は、
自処理手段が実行可能な処理とその処理の識別子とを記憶する手段と、
前記選択したオブジェクトデータと、前記特定した処理の識別子とを前記送り先として受信するのに応じて、前記自処理手段が実行可能な処理の識別子に基づいて、前記特定した処理の識別子に対応する処理を自処理手段が実行可能と判断した場合に、その実行可能な処理を、前記選択したオブジェクトデータに対して実行する手段とを含む
ことを特徴とする請求項1に記載の分散処理システム。 - 前記複数の処理手段は、
自処理手段が実行可能な処理に関して、その処理が少なくとも前回実行されたときの、処理結果及び内部状態の少なくとも何れかを記憶する手段を更に含み、
前記実行可能な処理を、前記選択したオブジェクトデータに対して実行するに際して、該実行可能な処理に関する前記処理結果及び内部状態の少なくとも何れかを参照する
ことを特徴とする請求項2に記載の分散処理システム。 - 前記分散処理システムは、
前記情報送信手段を実行するノード、前記情報選択手段を実行するノード、及び前記手段を実行するノードによって構成されている
ことを特徴とする請求項1乃至請求項3の何れかに記載の分散処理システム。 - 前記情報選択手段を実行するノードは、前記情報送信手段から送信されるオブジェクトデータを記憶する記憶するストレージである
ことを特徴とする請求項4に記載の分散処理システム。 - 前記情報送信手段は、
入力データの少なくとも一部、或いはそれを加工したデータを、前記オブジェクトデータとする手段を更に含む
ことを特徴とする請求項1乃至請求項5の何れかに記載の分散処理システム。 - 情報送信手段と、その情報送信手段に接続された複数の情報選択手段と、それら情報選択手段に接続され、処理を行う複数の処理手段とを利用した分散処理方法であって、
前記情報送信手段を用いて、
オブジェクトデータと、接続されている前記複数の情報選択手段の接続情報と、該オブジェクトデータのデータ項目に関する情報とに基づいて、前記複数の情報選択手段の中から特定の情報選択手段を選択し、選択した特定の情報選択手段に該オブジェクトデータを送信し、
前記複数の情報選択手段を用いて、
前記接続情報と、前記オブジェクトデータのデータ項目に関する情報とに基づいて、前記情報送信手段から送信されるオブジェクトデータのうち、自情報選択手段が受信する可能性のあるオブジェクトデータを選択すると共に、予め記憶した複数のルールのうち、該選択したオブジェクトデータに関係するルールを選択し、
前記選択したルールを、前記送信されるオブジェクトデータに適用することにより、該ルールに合致するオブジェクトデータを選択し、
予め記憶した前記複数のルールと処理との組み合わせ情報を参照することにより、前記選択したルールに対応する処理を特定し、
前記特定した処理の識別子、前記選択したルールの識別子、前記選択したオブジェクトデータ、及び接続されている前記複数の処理手段の接続情報に基づいて、前記複数の処理手段のうち、前記選択したオブジェクトデータの送り先となる処理手段を決定する
ことを特徴とする分散処理方法。 - 前記複数の情報選択手段を用いて、
前記選択したオブジェクトデータと、前記特定した処理の識別子とを、前記送り先となる処理手段に送信し、
前記送り先となる処理手段を用いて、
自処理手段が実行可能な処理とその処理の識別子とを記憶しておき、
前記選択したオブジェクトデータと、前記特定した処理の識別子とを前記送り先として受信するのに応じて、前記自処理手段が実行可能な処理の識別子に基づいて、前記特定した処理の識別子に対応する処理を自処理手段が実行可能と判断した場合に、その実行可能な処理を、前記選択したオブジェクトデータに対して実行する
ことを特徴とする請求項7に記載の分散処理方法。 - 前記複数の処理手段を用いて、
自処理手段が実行可能な処理に関して、その処理が少なくとも前回実行されたときの、処理結果及び内部状態の少なくとも何れかを記憶しておき、
前記実行可能な処理を、前記選択したオブジェクトデータに対して実行するに際して、該実行可能な処理に関する前記処理結果及び内部状態の少なくとも何れかを参照する
ことを特徴とする請求項8に記載の分散処理方法。 - 情報送信手段と、その情報送信手段に接続された複数の情報選択手段と、それら情報選択手段に接続され、処理を行う複数の処理手段とを備える分散処理システムの、該情報選択手段を、コンピュータによって実現するコンピュータプログラムであって、
前記情報送信手段に接続されている前記複数の情報選択手段の接続情報と、オブジェクトデータのデータ項目に関する情報とに基づいて、前記情報送信手段から送信されるオブジェクトデータのうち、自情報選択手段が受信する可能性のあるオブジェクトデータを選択すると共に、予め記憶されている複数のルールのうち、該選択したオブジェクトデータに関係するルールを選択する機能と、
前記選択したルールを、前記送信されるオブジェクトデータに適用することにより、該ルールに合致するオブジェクトデータを選択する機能と、
予め記憶されている前記複数のルールと処理との組み合わせ情報を参照することにより、前記選択したルールに対応する処理を特定する機能と、
前記特定した処理の識別子、前記選択したルールの識別子、前記選択したオブジェクトデータ、及び接続されている前記複数の処理手段の接続情報に基づいて、前記複数の処理手段のうち、前記選択したオブジェクトデータの送り先となる処理手段を決定する機能とを、コンピュータに実現させる
ことを特徴とするコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010205469A JP2012063832A (ja) | 2010-09-14 | 2010-09-14 | 分散処理システム、分散処理方法、及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010205469A JP2012063832A (ja) | 2010-09-14 | 2010-09-14 | 分散処理システム、分散処理方法、及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012063832A true JP2012063832A (ja) | 2012-03-29 |
Family
ID=46059516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010205469A Withdrawn JP2012063832A (ja) | 2010-09-14 | 2010-09-14 | 分散処理システム、分散処理方法、及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012063832A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013004969A1 (de) | 2012-03-21 | 2013-09-26 | Hitachi Automotive Systems, Ltd. | Steuereinheit für einen variablen Ventileinstellungsmechanismus und Steuerungsverfahren für einen variablen Ventileinstellungsmechanismus |
US9733977B2 (en) | 2013-05-31 | 2017-08-15 | Nec Corporation | Distributed processing system, distributed processing device, distributed processing method, and distributed processing program |
-
2010
- 2010-09-14 JP JP2010205469A patent/JP2012063832A/ja not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102013004969A1 (de) | 2012-03-21 | 2013-09-26 | Hitachi Automotive Systems, Ltd. | Steuereinheit für einen variablen Ventileinstellungsmechanismus und Steuerungsverfahren für einen variablen Ventileinstellungsmechanismus |
US9733977B2 (en) | 2013-05-31 | 2017-08-15 | Nec Corporation | Distributed processing system, distributed processing device, distributed processing method, and distributed processing program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104537076B (zh) | 一种文件读写方法及装置 | |
US7490265B2 (en) | Recovery segment identification in a computing infrastructure | |
US9542404B2 (en) | Subpartitioning of a namespace region | |
JP4727715B2 (ja) | ストリームデータ処理方法、及びシステム | |
CN103095687B (zh) | 元数据处理方法及装置 | |
US9483482B2 (en) | Partitioning file system namespace | |
US11132221B2 (en) | Method, apparatus, and computer-readable medium for dynamic binding of tasks in a data exchange | |
CN110289999B (zh) | 一种数据处理方法、系统及装置 | |
US10091057B2 (en) | Configuring distributed monitoring systems | |
JP5268589B2 (ja) | 情報処理装置及び情報処理装置の運用方法 | |
JP2012043098A (ja) | 管理装置,ファイルサーバシステム,処理方法及び管理プログラム | |
CN104715044A (zh) | 一种分布式系统及其数据操作方法 | |
CN116701330A (zh) | 物流信息共享方法、装置、设备及存储介质 | |
CN103270520A (zh) | 基于重要性类的数据管理 | |
RU2721235C2 (ru) | Способ и система для маршрутизации и выполнения транзакций | |
CN113535673B (zh) | 生成配置文件及数据处理的方法和装置 | |
JP2012063832A (ja) | 分散処理システム、分散処理方法、及びコンピュータプログラム | |
US20080082473A1 (en) | Peer based event conversion | |
CN109242680B (zh) | 一种区块链共识动态调整的方法 | |
JP2015064636A (ja) | 情報処理システム、分散処理方法、及び、プログラム | |
JP5809743B2 (ja) | 分散システムにおける異種システムデータ提供方法 | |
CN112019362A (zh) | 数据传输方法、装置、服务器、终端、系统及存储介质 | |
JP4222065B2 (ja) | 情報システムにおけるデータアクセス方法および情報システム | |
CN113553314A (zh) | 一种超融合系统的服务处理方法、装置、设备及介质 | |
CN114691766A (zh) | 数据采集方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20131203 |