JP2006023801A - 分散処理システムとそのデータ共有方法 - Google Patents
分散処理システムとそのデータ共有方法 Download PDFInfo
- Publication number
- JP2006023801A JP2006023801A JP2004198952A JP2004198952A JP2006023801A JP 2006023801 A JP2006023801 A JP 2006023801A JP 2004198952 A JP2004198952 A JP 2004198952A JP 2004198952 A JP2004198952 A JP 2004198952A JP 2006023801 A JP2006023801 A JP 2006023801A
- Authority
- JP
- Japan
- Prior art keywords
- data
- node
- management table
- information management
- middleware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】 ネットワークを介して接続される複数のノード2からなる分散処理システム1において、特殊なOSやハードウェアを必要とせず、またデータ共有のための管理サーバを用いることなく、異なるノードで動作するアプリケーションプログラムがデータを共有できるようにする。
【解決手段】 各ノードの空き容量などを管理するテーブル33と、データのサイズや保持されているノードの情報などを管理するテーブル34を保持するミドルウェア3を各ノード2に搭載し、データを書き込み可能なノードに対してデータを送信して保持させるとともに、データが書き込まれた情報を全てのノードに通知することにより、管理テーブル33,34の情報を共有することによって、データの共有を実現する。
【選択図】図1
【解決手段】 各ノードの空き容量などを管理するテーブル33と、データのサイズや保持されているノードの情報などを管理するテーブル34を保持するミドルウェア3を各ノード2に搭載し、データを書き込み可能なノードに対してデータを送信して保持させるとともに、データが書き込まれた情報を全てのノードに通知することにより、管理テーブル33,34の情報を共有することによって、データの共有を実現する。
【選択図】図1
Description
本発明は、複数のノードがネットワークを介して接続された分散処理システムに関し、特に異なるノードで動作するアプリケーションプログラムがデータを共有する技術に関する。
従来の分散処理システムが複数のノード間でデータを共有するときは、アプリケーションプログラムが動作するOSにアプリケーションプログラムやデータを配置するための仮想空間を管理する機能を設けたり、記憶領域の割り当てを管理するサーバを設けるなどして実現されている(例えば、特許文献1参照)。他にも分散処理システムのメモリを共有化する専用のハードウェアが使われたりしている(例えば、特許文献2参照)。
特開平8−83253
特開平8−69405
ところがこれらの従来の技術のように、OSレベルで拡張されたシステムや、特殊なハードウェアによるメモリ共有機構を用いてデータを共有すると、アプリケーションが稼動する環境が特殊なOSやハードウェアに限定されるため、汎用のOSや計算機を用いて分散処理システムを構築したいという要求には応えられないという問題があった。特に、本発明の対象のように、メモリの共有目的が、システム上で稼動するアプリケーションプログラムが使用するデータの共有のみであって、プログラムが稼動するメモリの共有までを必要とせず、データ共有の仕組みの可搬性が重視されるような場合には、特殊な環境に依存せずにデータの共有を実現することが課題となる。
また、特殊なハードウェアを用いないとしても、OSレベルの拡張システムで用いられて記憶領域の割り当て管理等に使用されるようなサーバを必要とするときは、互いに同等の機能を持つノードだけで分散処理システムを構築することが出来ないという問題があった。
本発明は、このような問題に鑑みてなされたものであり、汎用のOSや計算機を用いて構築することができて、特殊な管理用サーバを設置することなく、各ノード上のアプリケーションプログラムがデータを共有することができるような分散処理システムを提供することを目的とする。
また、特殊なハードウェアを用いないとしても、OSレベルの拡張システムで用いられて記憶領域の割り当て管理等に使用されるようなサーバを必要とするときは、互いに同等の機能を持つノードだけで分散処理システムを構築することが出来ないという問題があった。
本発明は、このような問題に鑑みてなされたものであり、汎用のOSや計算機を用いて構築することができて、特殊な管理用サーバを設置することなく、各ノード上のアプリケーションプログラムがデータを共有することができるような分散処理システムを提供することを目的とする。
上記問題を解決するため、本発明は、次のようにしたのである。
請求項1に記載の発明は、OSとミドルウェアとアプリケーションプログラムを備えた複数のノードがネットワークを介して互いに接続されているとともに前記複数のノードが前記ミドルウェアに格納された前記アプリケーションプログラムのデータを共有する分散処理システムにおいて、前記ミドルウェアは、前記アプリケーションプログラムの前記データを格納するデータ格納部と、共有された前記データの情報を保持するデータ情報管理テーブルと、前記複数のノードの情報を保持するノード情報管理テーブルと、メッセージと前記データを送受信するデータ送受信部と、を備えたことを特徴としている。
請求項2に記載の発明は、前記データ情報管理テーブルは、データの書き込み単位で割り付けるデータIDと、前記アプリケーションが定めるデータ属性と、前記データのサイズと、前記データが格納されたノードのノードIDと、前記データを保持するところが自らのノードであれば前記データが格納されているデータ領域中の場所を示すインデックスと、を備えており、前記ノード情報管理テーブルは、ノードを識別するノードIDと、そのノードに対応するネットワークアドレスと、データ容量と、使用可能なデータ格納部の残量と、を備えていることを特徴としている。
請求項3に記載の発明は、データが共有されるときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)アプリケーションプログラムの要求が、データ書き込みと、読み出しと、削除のいずれであるかを判断する。
(2)各ノードの情報を保持するノード情報管理テーブルの内容と、共有されたデータの情報を保持するデータ情報管理テーブルの内容に基づいて、要求を実行するためのメッセージを作成する。
(3)データ送受信部を介してメッセージとデータを送受信する。
(4)受信したメッセージ内容に基づいてノード情報管理テーブル及びデータ情報管理テーブルの内容と、ミドルウェア毎に予め確保したデータ格納部の内容を更新する。
請求項4に記載の発明は、データの書き込み要求を処理するときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)ミドルウェアがアプリケーションプログラムからデータ書き込み要求を受ければ自身のノード内のデータ格納部の残量を確認し、データが書き込み可能であればデータ格納部にデータを格納してデータ情報管理テーブルを更新するとともにデータが書き込まれたことを他のノードに通知する。
(2)その通知を受けた各ノードのミドルウェアは、通知内容に従って情報管理テーブルを更新し、一方で、データ書き込み要求に対し、自身のデータ格納部にデータを格納するのに十分な残量がなければ、ノード情報管理テーブルの情報に基づいて、必要な残量を持つ任意のノードにデータ書き込み要求を出し、要求の受理後にデータを送信する。
(3)データを書き込まれたノードは、データの送信元に書き込み完了を通知すると共に、他のノードにもデータが書き込まれたことを通知する。
(4)書き込み完了通知を受けた全てのノードにあるミドルウェアは、その通知の内容に従って情報管理テーブルを更新する。
請求項5に記載の発明は、データの読み出し要求を処理するときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)ミドルウェアがアプリケーションプログラムからデータ読み出し要求を受けたときに、自身のデータ格納部に要求されたデータがあればそのデータをアプリケーションプログラムに渡し、
要求されたデータがなければデータ情報管理テーブルとノード情報管理テーブルの情報に基づいて当該データを保持するノードにデータ読み出し要求を送信する。
(2)この要求を受けたノードのミドルウェアが要求されたデータを要求元に送信する。
請求項5に記載の発明は、データの削除要求を処理するときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)ミドルウェアがアプリケーションプログラムからデータの削除要求を受けたときにデータが自身のデータ格納部にあれば、データを削除した後にデータが削除されたことを各ノードに通知する。
(2)通知を受けた全てのノードのミドルウェアは、通知内容に従って情報管理テーブルを更新し、一方で、データの削除要求に対し、自身のデータ格納部に削除を要求されたデータがなければ削除要求メッセージを他の全ノードに送信する。
(3)そのメッセージを受けたミドルウェアは、データ格納部にデータがなければデータ情報管理テーブルのデータが削除対象となったことを記録し、そのデータ格納部にデータがあればそのデータを削除してから全てのノードに削除完了を通知する。
(4)削除完了通知を受けた全てのミドルウェアは、通知内容に従って情報管理テーブルを更新する。
請求項1に記載の発明は、OSとミドルウェアとアプリケーションプログラムを備えた複数のノードがネットワークを介して互いに接続されているとともに前記複数のノードが前記ミドルウェアに格納された前記アプリケーションプログラムのデータを共有する分散処理システムにおいて、前記ミドルウェアは、前記アプリケーションプログラムの前記データを格納するデータ格納部と、共有された前記データの情報を保持するデータ情報管理テーブルと、前記複数のノードの情報を保持するノード情報管理テーブルと、メッセージと前記データを送受信するデータ送受信部と、を備えたことを特徴としている。
請求項2に記載の発明は、前記データ情報管理テーブルは、データの書き込み単位で割り付けるデータIDと、前記アプリケーションが定めるデータ属性と、前記データのサイズと、前記データが格納されたノードのノードIDと、前記データを保持するところが自らのノードであれば前記データが格納されているデータ領域中の場所を示すインデックスと、を備えており、前記ノード情報管理テーブルは、ノードを識別するノードIDと、そのノードに対応するネットワークアドレスと、データ容量と、使用可能なデータ格納部の残量と、を備えていることを特徴としている。
請求項3に記載の発明は、データが共有されるときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)アプリケーションプログラムの要求が、データ書き込みと、読み出しと、削除のいずれであるかを判断する。
(2)各ノードの情報を保持するノード情報管理テーブルの内容と、共有されたデータの情報を保持するデータ情報管理テーブルの内容に基づいて、要求を実行するためのメッセージを作成する。
(3)データ送受信部を介してメッセージとデータを送受信する。
(4)受信したメッセージ内容に基づいてノード情報管理テーブル及びデータ情報管理テーブルの内容と、ミドルウェア毎に予め確保したデータ格納部の内容を更新する。
請求項4に記載の発明は、データの書き込み要求を処理するときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)ミドルウェアがアプリケーションプログラムからデータ書き込み要求を受ければ自身のノード内のデータ格納部の残量を確認し、データが書き込み可能であればデータ格納部にデータを格納してデータ情報管理テーブルを更新するとともにデータが書き込まれたことを他のノードに通知する。
(2)その通知を受けた各ノードのミドルウェアは、通知内容に従って情報管理テーブルを更新し、一方で、データ書き込み要求に対し、自身のデータ格納部にデータを格納するのに十分な残量がなければ、ノード情報管理テーブルの情報に基づいて、必要な残量を持つ任意のノードにデータ書き込み要求を出し、要求の受理後にデータを送信する。
(3)データを書き込まれたノードは、データの送信元に書き込み完了を通知すると共に、他のノードにもデータが書き込まれたことを通知する。
(4)書き込み完了通知を受けた全てのノードにあるミドルウェアは、その通知の内容に従って情報管理テーブルを更新する。
請求項5に記載の発明は、データの読み出し要求を処理するときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)ミドルウェアがアプリケーションプログラムからデータ読み出し要求を受けたときに、自身のデータ格納部に要求されたデータがあればそのデータをアプリケーションプログラムに渡し、
要求されたデータがなければデータ情報管理テーブルとノード情報管理テーブルの情報に基づいて当該データを保持するノードにデータ読み出し要求を送信する。
(2)この要求を受けたノードのミドルウェアが要求されたデータを要求元に送信する。
請求項5に記載の発明は、データの削除要求を処理するときの処理手順を次のようにしたことを特徴としている。すなわち、
(1)ミドルウェアがアプリケーションプログラムからデータの削除要求を受けたときにデータが自身のデータ格納部にあれば、データを削除した後にデータが削除されたことを各ノードに通知する。
(2)通知を受けた全てのノードのミドルウェアは、通知内容に従って情報管理テーブルを更新し、一方で、データの削除要求に対し、自身のデータ格納部に削除を要求されたデータがなければ削除要求メッセージを他の全ノードに送信する。
(3)そのメッセージを受けたミドルウェアは、データ格納部にデータがなければデータ情報管理テーブルのデータが削除対象となったことを記録し、そのデータ格納部にデータがあればそのデータを削除してから全てのノードに削除完了を通知する。
(4)削除完了通知を受けた全てのミドルウェアは、通知内容に従って情報管理テーブルを更新する。
請求項1〜5に記載の発明によると、特殊なOSやハードウェアのメモリ共有機構に依存することなく、アプリケーションプログラムが使うデータの共有が可能である。また、分散処理システムのデータ共有を管理するサーバが不要となり、データ共有に使用するシステムの領域も全体としてノードの数に応じて増加するため、規模拡張性のあるスケーラブルなシステム構築を行うことができる。
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
図1は、本発明の分散処理システムの構成を示す図であり、ミドルウェア3を搭載した複数のノード2がネットワーク6を介して互いに接続されたことが示されている。図において、1は分散処理システムであり、2は分散処理システムを構成するノード、6はイーサネット(登録商標)などのネットワークである。図1ではノード2の数が4つになっているが、これに限定されることはなく任意である。3はミドルウェア、4はノードにおけるソフトウェアの実行環境となっているOS、5はミドルウェアを使用して他のノード上のアプリケーションプログラムとデータを共有するアプリケーションプログラムであり、これらがノード2に備えられている。31はミドルウェアが予め確保しておくデータ格納部、32はミドルウェアが他のノードとメッセージやデータの送受信を行うためのデータ送受信部、33は各ノードの情報を保持するノード情報管理テーブル、34は分散処理システム内のアプリケーションが共有するデータの情報を保持するデータ情報管理テーブルであり、これらがミドルウェア3に備えられている。
ここでミドルウェアについて少し説明を補充しておく。ミドルウェアとは、ソフトウェアをつなぐためのソフトウェアともいわれており、基本ソフトのOSと応用ソフトのアプリケーションプログラムの中間に位置するソフトウェアであり、一般的にはエンドユーザとバックオフィスサーバを接続する。その役目は、1台のサーバ上のアプリケーションとそのアプリケーションへのアクセスを要求する任意の台数のクライアントとの仲介を行い、異種コンピューティング環境のアプリケーションにおける双方向のやり取りを実現する、というものである。これがあることにより、異なるアーキテクチャやプロトコル、ネットワークを超えて簡単でスムーズにアプリケーションや情報にアクセスすることができるのである。
ここでミドルウェアについて少し説明を補充しておく。ミドルウェアとは、ソフトウェアをつなぐためのソフトウェアともいわれており、基本ソフトのOSと応用ソフトのアプリケーションプログラムの中間に位置するソフトウェアであり、一般的にはエンドユーザとバックオフィスサーバを接続する。その役目は、1台のサーバ上のアプリケーションとそのアプリケーションへのアクセスを要求する任意の台数のクライアントとの仲介を行い、異種コンピューティング環境のアプリケーションにおける双方向のやり取りを実現する、というものである。これがあることにより、異なるアーキテクチャやプロトコル、ネットワークを超えて簡単でスムーズにアプリケーションや情報にアクセスすることができるのである。
図2は、ノード情報管理テーブル33とデータ情報管理テーブル34の内容を示す図である。ここで、各ノードには、システム内でノードを一意に識別するためのノードIDを与えておくものとする。ノード情報管理テーブル33はノード毎にノードIDとノードのネットワークアドレス、ノードで確保されているデータ格納部31のデータ容量、データ格納部の空き容量を保持している。データ情報管理テーブル34はデータ格納部31に書き込まれているデータ毎に、データの書き込み時にミドルウェアが定めるデータIDと、アプリケーションプログラムがデータの書き込み時に指定できるデータ属性、データのサイズ、データを保持するノードのノードIDを保持しており、さらに、そのデータを保持するノードが自身である場合は、そのデータ格納部からデータを取得するために使用するインデックスを保持している。
次に図3〜図5を用いてアプリケーションプログラム5の要求に従って、ミドルウェア3がデータをデータ格納部31に書き込む処理とデータを読み出す処理、データを削除する処理の3つの処理の流れについて説明する。
図3は、請求項3に記載された発明を説明する図であり、(a)はミドルウェア3がデータをデータ格納部31に書き込むときの処理の流れを示すシーケンス図、(b)は書き込み処理の過程で送受信されるメッセージの内容を示している。ノード21はアプリケーションプログラム5のデータ書き込み要求を受けてデータの書き込み処理を開始するノードであり、ノード22は実際にデータが書き込まれるノード、ノード23、24がその他のノードであるとし、また、ノード21には要求されたデータを書き込む空き容量がなく、ノード22には十分な空き容量があるものとすると、図3(a)の処理の流れは次のようになる。
(S1)まず、ノード21がアプリケーションプログラム5のデータ書き込み要求71を受けると、ノード情報管理テーブル33の情報が調べられる。このとき、自ノードにデータを格納する十分な空き容量がなく、ノード22に十分な空き容量があることがわかれば、ノード22がデータ書き込み対象ノードとして選択される。書き込み可能なノードが複数あるときは任意のノードが選択される。
(S2)次に、ノード21は、書き込もうとするデータにデータIDを割り当てた後、ノード22に書き込み要求メッセージ71を送信する。ここで、送信されたメッセージと以下のステップで送信されるメッセージについて補足説明する。(S2)〜(S7)のメッセージの構成は図3(b)のようになっており、それぞれメッセージの種別を示すヘッダとメッセージ本体から成っている。「書き込み要求」、「書き込み許可」、「書き込み完了」などと書かれた部分がメッセージの種別を示すヘッダである。但し、種別を表すデータの実際の形式はどんなものでもよく、形式は問われない。図4以降の実施例に示されたメッセージも同様の形式になっている。書き込み要求メッセージ71は、データIDの他にデータのサイズの情報を含んでいる。データIDは、システム全体で一意になるように各ノードによって決められる。例えば、ノードIDとノード内で生成した連番を組み合わせてデータIDとすることができる。
(S3)次に、データの書き込み要求71を受けたノード22は、ノード情報管理テーブル33により、データの書き込みが可能であることを判定した後、書き込み許可メッセージ72を送信する。容量不足によりデータの書き込みができないときは、ノードの現在の空き容量の情報を含む書き込み不能通知メッセージ73が送信される。書き込み不能メッセージ73を受けたノードは、ノード情報管理テーブル33の送信元ノードに対応する空き容量を、通知された空き容量で更新する。なお、書き込み不能通知メッセージ73が送られるのは、ノード21によるノード選択後、ノード22に対する書き込み要求が受理される前に、他のノードがノード22にデータを書き込んだような場合である。
図3は、請求項3に記載された発明を説明する図であり、(a)はミドルウェア3がデータをデータ格納部31に書き込むときの処理の流れを示すシーケンス図、(b)は書き込み処理の過程で送受信されるメッセージの内容を示している。ノード21はアプリケーションプログラム5のデータ書き込み要求を受けてデータの書き込み処理を開始するノードであり、ノード22は実際にデータが書き込まれるノード、ノード23、24がその他のノードであるとし、また、ノード21には要求されたデータを書き込む空き容量がなく、ノード22には十分な空き容量があるものとすると、図3(a)の処理の流れは次のようになる。
(S1)まず、ノード21がアプリケーションプログラム5のデータ書き込み要求71を受けると、ノード情報管理テーブル33の情報が調べられる。このとき、自ノードにデータを格納する十分な空き容量がなく、ノード22に十分な空き容量があることがわかれば、ノード22がデータ書き込み対象ノードとして選択される。書き込み可能なノードが複数あるときは任意のノードが選択される。
(S2)次に、ノード21は、書き込もうとするデータにデータIDを割り当てた後、ノード22に書き込み要求メッセージ71を送信する。ここで、送信されたメッセージと以下のステップで送信されるメッセージについて補足説明する。(S2)〜(S7)のメッセージの構成は図3(b)のようになっており、それぞれメッセージの種別を示すヘッダとメッセージ本体から成っている。「書き込み要求」、「書き込み許可」、「書き込み完了」などと書かれた部分がメッセージの種別を示すヘッダである。但し、種別を表すデータの実際の形式はどんなものでもよく、形式は問われない。図4以降の実施例に示されたメッセージも同様の形式になっている。書き込み要求メッセージ71は、データIDの他にデータのサイズの情報を含んでいる。データIDは、システム全体で一意になるように各ノードによって決められる。例えば、ノードIDとノード内で生成した連番を組み合わせてデータIDとすることができる。
(S3)次に、データの書き込み要求71を受けたノード22は、ノード情報管理テーブル33により、データの書き込みが可能であることを判定した後、書き込み許可メッセージ72を送信する。容量不足によりデータの書き込みができないときは、ノードの現在の空き容量の情報を含む書き込み不能通知メッセージ73が送信される。書き込み不能メッセージ73を受けたノードは、ノード情報管理テーブル33の送信元ノードに対応する空き容量を、通知された空き容量で更新する。なお、書き込み不能通知メッセージ73が送られるのは、ノード21によるノード選択後、ノード22に対する書き込み要求が受理される前に、他のノードがノード22にデータを書き込んだような場合である。
(S4)ノード21がノード22の書き込み許可メッセージ72を受信すると、データを含むデータ送信メッセージ74をノード22に送信する。メッセージ74にはデータ本体の他にアプリケーションが定めたデータ属性の情報も含まれている。
(S5)ノード22がデータを受信すると、自身のデータ格納部31にデータを格納し、ノード情報管理テーブル33の空き容量を更新して、データ情報管理テーブル34に新しいエントリを追加する。
(S6)書き込み完了通知メッセージ75をノード21に送信する。
(S7)新しいデータが登録されたことを他のノードに通知するために、自ノードの空き容量を含む、書き込み完了通知メッセージ76をブロードキャストする。
(S8)ノード23、24が書き込み完了通知メッセージ76のブロードキャストを受けると、メッセージの内容に従ってノード情報管理テーブル33の空き容量を更新し、データ情報管理テーブル34に新しいエントリを追加する。メッセージに含まれるデータIDが既に受信している書き込み完了通知メッセージ75に含まれているため、ノード21はメッセージ76を無視する。
(S5)ノード22がデータを受信すると、自身のデータ格納部31にデータを格納し、ノード情報管理テーブル33の空き容量を更新して、データ情報管理テーブル34に新しいエントリを追加する。
(S6)書き込み完了通知メッセージ75をノード21に送信する。
(S7)新しいデータが登録されたことを他のノードに通知するために、自ノードの空き容量を含む、書き込み完了通知メッセージ76をブロードキャストする。
(S8)ノード23、24が書き込み完了通知メッセージ76のブロードキャストを受けると、メッセージの内容に従ってノード情報管理テーブル33の空き容量を更新し、データ情報管理テーブル34に新しいエントリを追加する。メッセージに含まれるデータIDが既に受信している書き込み完了通知メッセージ75に含まれているため、ノード21はメッセージ76を無視する。
図4は、請求項4に記載された発明を説明する図であり、(a)はミドルウェア3がデータをデータ格納部31から読み出すときの処理の流れを示すシーケンス図、(b)は読み出し処理の過程で送受信されるメッセージの内容を示している。ノード21はアプリケーションからのデータ読み出し要求を受けたデータの読み出し処理を開始するノードであり、ノード22は実際にデータが保持されるノードである。図4(a)の処理の流れは次のようになる。
(S21)まず、ノード21がデータ情報管理テーブル34を検索して実際にデータを保持しているノードを検索する。この図の場合はそのノードがノード22であると判定する。
(S22)次に、ノード21がデータ読み出し要求メッセージ81をノード22に送信する。
(S23)最後に、ノード22が要求されたデータを含むデータ送信メッセージ82をノード21に送信する。
(S21)まず、ノード21がデータ情報管理テーブル34を検索して実際にデータを保持しているノードを検索する。この図の場合はそのノードがノード22であると判定する。
(S22)次に、ノード21がデータ読み出し要求メッセージ81をノード22に送信する。
(S23)最後に、ノード22が要求されたデータを含むデータ送信メッセージ82をノード21に送信する。
図5は、請求項5に記載された発明を説明する図であり、(a)はミドルウェア3がデータをデータ格納部31から削除するときの処理の流れを示すシーケンス図、(b)は削除処理の過程で送受信されるメッセージの内容を示している。ノード21はアプリケーションからのデータ削除要求を受けてデータの削除処理を開始するノードであるが実際にはデータを保持していないノードであり、ノード24は実際にそのデータを保持しているノード、ノード22、23はその他のノードである。図5(a)の処理の流れは次のようになる。
(S31)まず、ノード21がデータ格納部31を検索して自ノードに削除すべきデータ本体がないことを知る。
(S32)次に、ノード21が削除すべきデータのデータIDを含む削除要求メッセージ91をブロードキャストする。
(S33)ノード24が削除要求メッセージ91を受信すると、ノード24がそのデータを保持しているので、そのデータをデータ情報管理テーブル34から削除し、ノード情報管理テーブル33の空き容量を更新する。
(S34)ノード22、23は削除すべきデータ本体を持たないので、そのデータIDが示すデータが削除対象となったことを記憶する。これ以降は、アプリケーションのデータ読み出し要求があれば、データが存在しないという応答を返す。
(S35)ノード24がデータを削除すると、データの削除完了通知メッセージ92をブロードキャストする。
(S36)最後に、各ノードがデータ削除完了通知メッセージ92を受信すると、データIDに対応するエントリをデータ情報管理テーブル34から削除し、ノード情報管理テーブル33の当該データを保持していたノードの空き容量を更新する。
(S31)まず、ノード21がデータ格納部31を検索して自ノードに削除すべきデータ本体がないことを知る。
(S32)次に、ノード21が削除すべきデータのデータIDを含む削除要求メッセージ91をブロードキャストする。
(S33)ノード24が削除要求メッセージ91を受信すると、ノード24がそのデータを保持しているので、そのデータをデータ情報管理テーブル34から削除し、ノード情報管理テーブル33の空き容量を更新する。
(S34)ノード22、23は削除すべきデータ本体を持たないので、そのデータIDが示すデータが削除対象となったことを記憶する。これ以降は、アプリケーションのデータ読み出し要求があれば、データが存在しないという応答を返す。
(S35)ノード24がデータを削除すると、データの削除完了通知メッセージ92をブロードキャストする。
(S36)最後に、各ノードがデータ削除完了通知メッセージ92を受信すると、データIDに対応するエントリをデータ情報管理テーブル34から削除し、ノード情報管理テーブル33の当該データを保持していたノードの空き容量を更新する。
本発明は、ネットワークを介して接続される複数のモーションコントローラなどのFA用の機器をノードとする分散処理システムに使うことができ、特に、異なるノード上で動作するアプリケーションプログラム同士がデータを共有するようなシステムに適用することができる。
1 分散処理システム、 2、21、22、23、24 ノード、
3 ミドルウェア、 31 データ格納部、
32 データ送受信部、 33 ノード情報管理テーブル、
34 データ情報管理テーブル、 4 OS、
5 アプリケーションプログラム、 6 ネットワーク、
71 書き込み要求メッセージ、 72 書き込み許可メッセージ、
73 書き込み不能通知メッセージ、 74 データ送信メッセージ、
75 書き込み完了通知メッセージ(ユニキャスト)、
76 書き込み完了通知メッセージ(ブロードキャスト)、
81 読み出し要求メッセージ、 82 データ送信メッセージ、
91 削除要求メッセージ、 92 削除完了通知メッセージ
3 ミドルウェア、 31 データ格納部、
32 データ送受信部、 33 ノード情報管理テーブル、
34 データ情報管理テーブル、 4 OS、
5 アプリケーションプログラム、 6 ネットワーク、
71 書き込み要求メッセージ、 72 書き込み許可メッセージ、
73 書き込み不能通知メッセージ、 74 データ送信メッセージ、
75 書き込み完了通知メッセージ(ユニキャスト)、
76 書き込み完了通知メッセージ(ブロードキャスト)、
81 読み出し要求メッセージ、 82 データ送信メッセージ、
91 削除要求メッセージ、 92 削除完了通知メッセージ
Claims (6)
- OSとミドルウェアとアプリケーションプログラムを備えた複数のノードがネットワークを介して互いに接続されているとともに前記複数のノードが前記ミドルウェアに格納された前記アプリケーションプログラムのデータを共有する分散処理システムにおいて、
前記ミドルウェアは、
前記アプリケーションプログラムの前記データを格納するデータ格納部と、
共有された前記データの情報を保持するデータ情報管理テーブルと、
前記複数のノードの情報を保持するノード情報管理テーブルと、
メッセージと前記データを送受信するデータ送受信部と、
を備えたことを特徴とする分散処理システム。 - 前記データ情報管理テーブルは、
データの書き込み単位で割り付けるデータIDと、
前記アプリケーションが定めるデータ属性と、
前記データのサイズと、
前記データが格納されたノードのノードIDと、
前記データを保持するところが自らのノードであれば前記データが格納されているデータ領域中の場所を示すインデックスと、を備えており、
前記ノード情報管理テーブルは、
ノードを識別するノードIDと、
そのノードに対応するネットワークアドレスと、
データ容量と、
使用可能なデータ格納部の残量と、を備えていることを特徴とする請求項1に記載の分散処理システム。 - ミドルウェアとアプリケーションプログラムと前記アプリケーションプログラムのデータを備えた複数のノードがネットワークを介して互いに接続されるとともに複数のノードがデータを共有する分散処理システムにおいて、次の処理手順でデータが共有されることを特徴とする分散処理システムのデータ共有方法。
(1)アプリケーションプログラムの要求が、データ書き込みと、読み出しと、削除のいずれであるかを判断する。
(2)各ノードの情報を保持するノード情報管理テーブルの内容と、共有されたデータの情報を保持するデータ情報管理テーブルの内容に基づいて、要求を実行するためのメッセージを作成する。
(3)データ送受信部を介してメッセージとデータを送受信する。
(4)受信したメッセージ内容に基づいてノード情報管理テーブル及びデータ情報管理テーブルの内容と、ミドルウェア毎に予め確保したデータ格納部の内容を更新する。 - 以下の手順によりデータの書き込み要求を処理することを特徴とする請求項3に記載の分散処理システムのデータ共有方法。
(1)ミドルウェアがアプリケーションプログラムからデータ書き込み要求を受ければ自身のノード内のデータ格納部の残量を確認し、データが書き込み可能であればデータ格納部にデータを格納してデータ情報管理テーブルを更新するとともにデータが書き込まれたことを他のノードに通知する。
(2)その通知を受けた各ノードのミドルウェアは、通知内容に従って情報管理テーブルを更新し、一方で、データ書き込み要求に対し、自身のデータ格納部にデータを格納するのに十分な残量がなければ、ノード情報管理テーブルの情報に基づいて、必要な残量を持つ任意のノードにデータ書き込み要求を出し、要求の受理後にデータを送信する。
(3)データを書き込まれたノードは、データの送信元に書き込み完了を通知すると共に、他のノードにもデータが書き込まれたことを通知する。
(4)書き込み完了通知を受けた全てのノードにあるミドルウェアは、その通知の内容に従って情報管理テーブルを更新する。 - 以下の手順によりデータの読み出し要求を処理することを特徴とする請求項3に記載の分散処理システムのデータ共有方法。
(1)ミドルウェアがアプリケーションプログラムからデータ読み出し要求を受けたときに、自身のデータ格納部に要求されたデータがあればそのデータをアプリケーションプログラムに渡し、
要求されたデータがなければデータ情報管理テーブルとノード情報管理テーブルの情報に基づいて当該データを保持するノードにデータ読み出し要求を送信する。
(2)この要求を受けたノードのミドルウェアが要求されたデータを要求元に送信する。 - 以下の手順によりデータの削除要求を処理することを特徴とする請求項3に記載の分散処理システムのデータ共有方法。
(1)ミドルウェアがアプリケーションプログラムからデータの削除要求を受けたときにデータが自身のデータ格納部にあれば、データを削除した後にデータが削除されたことを各ノードに通知する。
(2)通知を受けた全てのノードのミドルウェアは、通知内容に従って情報管理テーブルを更新し、一方で、データの削除要求に対し、自身のデータ格納部に削除を要求されたデータがなければ削除要求メッセージを他の全ノードに送信する。
(3)そのメッセージを受けたミドルウェアは、データ格納部にデータがなければデータ情報管理テーブルのデータが削除対象となったことを記録し、そのデータ格納部にデータがあればそのデータを削除してから全てのノードに削除完了を通知する。
(4)削除完了通知を受けた全てのミドルウェアは、通知内容に従って情報管理テーブルを更新する。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004198952A JP2006023801A (ja) | 2004-07-06 | 2004-07-06 | 分散処理システムとそのデータ共有方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004198952A JP2006023801A (ja) | 2004-07-06 | 2004-07-06 | 分散処理システムとそのデータ共有方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006023801A true JP2006023801A (ja) | 2006-01-26 |
Family
ID=35797057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004198952A Pending JP2006023801A (ja) | 2004-07-06 | 2004-07-06 | 分散処理システムとそのデータ共有方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006023801A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200117405A (ko) * | 2019-04-04 | 2020-10-14 | 한국전자통신연구원 | 분산 잠금 관리를 하는 분산 시스템 및 그것의 동작 방법 |
-
2004
- 2004-07-06 JP JP2004198952A patent/JP2006023801A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200117405A (ko) * | 2019-04-04 | 2020-10-14 | 한국전자통신연구원 | 분산 잠금 관리를 하는 분산 시스템 및 그것의 동작 방법 |
KR102450133B1 (ko) * | 2019-04-04 | 2022-10-05 | 한국전자통신연구원 | 분산 잠금 관리를 하는 분산 시스템 및 그것의 동작 방법 |
US11500693B2 (en) | 2019-04-04 | 2022-11-15 | Electronics And Telecommunications Research Institute | Distributed system for distributed lock management and method for operating the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4485256B2 (ja) | 記憶領域の管理方法及び管理システム | |
US7325041B2 (en) | File distribution system in which partial files are arranged according to various allocation rules associated with a plurality of file types | |
US10831612B2 (en) | Primary node-standby node data transmission method, control node, and database system | |
JPH1196102A (ja) | サーバ分散管理方法 | |
CN111125049B (zh) | 基于rdma与非易失内存的分布式文件数据块读写方法及系统 | |
JP2003248611A (ja) | 記憶管理統合システム、および、その記憶管理制御方法 | |
KR20150091843A (ko) | 분산 처리 시스템 및 이의 동작 방법 | |
JP2005050165A (ja) | 分散ストレージ装置のファイル管理方法及び分散ストレージシステム | |
JP5505516B2 (ja) | 情報処理システムおよび情報送信方法 | |
WO2015196815A1 (zh) | Ip硬盘与存储系统,及其数据操作方法 | |
US7818390B2 (en) | Method for transferring data between terminal apparatuses in a transparent computation system | |
JP2013542681A (ja) | コンテンツ中心のネットワーク環境でグループ変更に関する情報を用いるコンテンツ共有方法及び装置 | |
KR101236477B1 (ko) | 비대칭 클러스터 파일 시스템의 데이터 처리 방법 | |
KR20150103477A (ko) | 분산환경 기반의 캐쉬 관리 장치 및 방법 | |
US20040205069A1 (en) | Attached file management system, program, information storage medium, and method of managing attached file | |
JP2004094935A (ja) | オブジェクト状態転送方法,オブジェクト状態転送装置およびオブジェクト状態転送プログラム並びにそのプログラムの記録媒体 | |
WO2007011164A1 (en) | Virtual storage system and method for managementing virtual storage based on ad-hoc network | |
EP3958139B1 (en) | Method and system for creating files in a file system | |
EP2802108B1 (en) | Data-centric communications system and data forwarding method | |
KR100801217B1 (ko) | 애드혹 네트워크를 기반으로 한 가상 스토리지 시스템 및가상 스토리지 관리 방법 | |
JP2007249514A (ja) | 配信システム及び配信システム制御方法、蓄積装置及び蓄積装置用プログラム並びにノード装置及びノード装置用プログラム | |
JP2006023801A (ja) | 分散処理システムとそのデータ共有方法 | |
JPH11112595A (ja) | 電子機器、電源制御方法及び記録媒体 | |
CN111400110B (zh) | 数据库访问管理系统 | |
TWI695329B (zh) | 一種建置於容器平台的資料碎片管理系統及方法 |