JP5960820B2 - ツリー構造の管理方法、情報処理システム、及び、プログラム - Google Patents

ツリー構造の管理方法、情報処理システム、及び、プログラム Download PDF

Info

Publication number
JP5960820B2
JP5960820B2 JP2014524509A JP2014524509A JP5960820B2 JP 5960820 B2 JP5960820 B2 JP 5960820B2 JP 2014524509 A JP2014524509 A JP 2014524509A JP 2014524509 A JP2014524509 A JP 2014524509A JP 5960820 B2 JP5960820 B2 JP 5960820B2
Authority
JP
Japan
Prior art keywords
node
moving
tree structure
response
parent
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
JP2014524509A
Other languages
English (en)
Other versions
JPWO2014010014A1 (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.)
Murakumo Corp
Original Assignee
Murakumo 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 Murakumo Corp filed Critical Murakumo Corp
Publication of JPWO2014010014A1 publication Critical patent/JPWO2014010014A1/ja
Application granted granted Critical
Publication of JP5960820B2 publication Critical patent/JP5960820B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • 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/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0883Semiautomatic configuration, e.g. proposals from system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Description

本発明は、ツリー構造の管理方法、情報処理システム、及び、プログラムに関する。
複数の情報処理装置を備える情報処理システムでは、当該複数の情報処理装置は、それぞれノードとして、ツリー構造に接続される場合がある。例えば、複数のマスタノードがネットワークにより階層的に接続されているデータベースシステムがある(特許文献1)。
特許第4951137号公報
ツリー構造に接続された複数の情報処理装置を備えるシステムでは、当該システム全体に各ノードの処理に係るメッセージを行き渡らせる場合、当該ツリー構造における各ノード間の接続を利用して、根ノードから各ノードにメッセージが送信される。例えば、上記特許文献1では、ツリー構造における各ノード間の接続を利用して、レプリケーションに係るメッセージが各ノードに送信される場面が例示されている。メッセージを受信すると、各ノードでは、当該受信したメッセージに係る処理が実行される。
このツリー構造を有するシステムにおいて葉ノード以外のノードが停止すると、ツリー構造が壊れてしまい、当該停止するノードの下位に接続されたノードにメッセージが送信されなくなってしまう。そのため、当該停止するノードの下位に接続されたノードを移動させて、当該システムのツリー構造を維持させる必要がある。
ツリー構造を維持する場合、移動するノードは、当該移動に際して、現在の接続を切断し、新たな接続を形成(再接続)することになる。このとき、当該移動するノードは、切断から再接続までの間に送信されたメッセージを受信することができない。
これに対処する一つの方法として、送信されるメッセージを各ノードが全て保持しておき、上記のように移動するノードのために、当該移動するノードの切断から再接続までの間に送信されたメッセージを再送する方法がある。しかしながら、例えば、特許文献1に挙げられるレプリケーションに係るメッセージが送信される場面では、大量にメッセージが送信される場合がある。このような場合、送信されるメッセージを各ノードが全て保持する方法はリソースの面から現実的ではない。
そのため、別の方法として、切断から再接続までの間に送信されたメッセージを取得できない状態で当該移動するノードを再接続させる方法がある。この方法では、当該移動するノードにおいて失われたメッセージを補う必要があり、場合によっては、当該失われたメッセージを補うための初期化処理が行われる。そうすると、失われたメッセージによっては当該初期化処理が成功せず、システムの整合性が失われてしまう場合があり、移動するノードの再接続処理は放棄されてしまう。つまり、この方法では、ノードの移動にギャンブル性が生じてしまい、気軽にノードを移動させることが出来なくなってしまう。
よって、従来の方法では、ツリー構造内において大量のメッセージが送信されるシステムであっても、当該システムの整合性を損なうことなく確実にノードを移動させることができなかった。
本発明は、このような点を考慮してなされたものであり、ツリー構造内において大量のメッセージが送信されるシステムであっても、当該システムの整合性を損なうことなく確実にノードの移動を可能にする技術を提供することを目的とする。
本発明の第1形態は、複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムにおける、該ツリー構造上のノードの位置の移動に係るツリー構造の管理方法であって、移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、前記移動先の親ノードが、前記応答を受信すると、形成された前記接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、前記移動するノードが、形成された前記接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、を含むツリー構造の管理方法である。
本発明の第1形態によれば、まず、ツリー構造内において、移動するノードと移動先の親ノートとの間で接続が形成される。次に、移動するノードから根ノードに移動リクエストが送信され、当該移動リクエストに対する応答が、根ノードからツリー構造に従って配信される。当該移動先の親ノードが当該応答を受信すると、当該応答よりも後のメッセージが、形成された接続を経由して当該移動するノードに送信される。当該移動するノードでは、形成された接続を経由して受信する応答よりも後のメッセージはキューに保持される。ツリー構造に従って配信された当該応答を移動するノードが受信すると、当該移動するノードでは、移動前の親ノードから受信した当該応答よりも前のメッセージとキューに保持された当該応答よりも後のメッセージとにより、配信されたメッセージの再構築が行われる。そして、移動するノードと移動前の親ノードとの接続が切断され、移動するノードの移動が完了する。
従って、本発明の第1形態によれば、移動するノードのキューに保持されたメッセージを利用することで、配信されたメッセージの再構築を確実に行うことが可能であるため、ノードの移動にギャンブル性が生じず、ノードを確実に移動させることができる。また、メッセージの再構築のために保持するメッセージの量は、移動するノードのキューが保持する分だけで済むため、送信されるメッセージを各ノードが全て保持する方法に比べて格段にリソースを節約することができる。よって、本発明の第1形態によれば、ツリー構造内において大量のメッセージが送信されるシステムであっても、当該システムの整合性を損なうことなく確実にノードを移動させることが可能になる。
本発明の第2形態は、前記移動するノードは、配信されたメッセージを再構築した後、前記移動先の親ノードから受信するメッセージを、キューに保持せずに処理する、第1形態のツリー構造の管理方法である。
本発明の第3形態は、前記移動前の親ノードは、前記ツリー構造に従って配信された前記応答を受信した後に前記移動するノードに対するメッセージの配信を停止することで、前記応答よりも後のメッセージを前記移動するノードに送信しない、第1形態又は第2形態のツリー構造の管理方法である。
本発明の第4形態は、前記移動リクエストに対する応答は、前記移動するノードを示す情報と前記移動するノードの移動先を示す情報とを含み、前記情報処理システムに含まれるすべてのノードに前記ツリー構造に従って配信される、第1形態から第3形態のいずれかの形態のツリー構造の管理方法である。
本発明の第5形態は、前記移動リクエストに対する応答は、前記根ノードから前記移動するノードまでの経路に含まれるノードに配信される、第1形態から第3形態のいずれかの形態のツリー構造の管理方法である。
本発明の第6形態は、複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムにおけるノードの置き換えに係るツリー構造の管理方法であって、前記ツリー構造における葉ノードを置き換え対象のノードに置き換わる代替ノードとして、前記置き換え対象のノードを前記代替ノードで置き換えるため、前記ツリー構造上の位置に係るノードの移動処理によって、前記代替ノードの移動先の親ノードが前記置き換え対象のノードの親ノードとなるように、前記代替ノードを移動させるステップと、前記置き換え対象のノードが子ノードを有する場合、前記ノードの移動処理によって、前記子ノードの移動先の親ノードが前記代替ノードとなるように、前記子ノードを移動させるステップと、を含み、前記ノードの移動処理は、移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、前記移動先の親ノードが、前記応答を受信すると、形成された接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、前記移動するノードが、形成された接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、を含む、ツリー構造の管理方法である。
本発明の第7形態は、前記置き換え対象のノードが、前記ツリー構造における根ノードに置換リクエストを送信するステップと、前記根ノードが、前記置換リクエストに対する応答を、前記ツリー構造に従って配信するステップと、を更に含み、前記代替ノードは、前記根ノードから配信される、前記置換リクエストに対する応答を受信することで、前記ノードの移動処理に基づくノードの移動を開始し、前記置き換え対象のノードが子ノードを有する場合、該子ノードは、前記代替ノードの移動の際に配信される、前記移動リクエストに対する応答を受信することで、前記ノードの移動処理に基づくノードの移動を開始する、第6形態のツリー構造の管理方法である。
なお、上記各形態に係るツリー構造の管理方法の別の形態として、以上の各構成を実現する情報処理システムであってもよいし、プログラムであってもよいし、このようなプログラムを記録したコンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記録媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。なお、データベースシステムは、1又は複数のコンピュータによって実現されてもよい。
例えば、本発明の第8形態は、複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムであって、前記ツリー構造上の位置を移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成する手段と、前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信する手段と、前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信する手段と、前記移動先の親ノードが、前記応答を受信すると、形成された前記接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信する手段と、前記移動するノードが、形成された前記接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持する手段と、前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築する手段と、前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断する手段と、を備える情報処理システムである。
また、例えば、本発明の第9形態は、複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムであって、前記ツリー構造における葉ノードを置き換え対象のノードに置き換わる代替ノードとして、前記置き換え対象のノードを前記代替ノードで置き換えるため、前記ツリー構造上の位置に係るノードの移動処理によって、前記代替ノードの移動先の親ノードが前記置き換え対象のノードの親ノードとなるように、前記代替ノードを移動させる手段と、前記置き換え対象のノードが子ノードを有する場合、前記ノードの移動処理によって、前記子ノードの移動先の親ノードが前記代替ノードとなるように、前記子ノードを移動させる手段と、を備え、前記ノードの移動処理は、移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、前記移動先の親ノードが、前記応答を受信すると、形成された接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、前記移動するノードが、形成された接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、を含む、情報処理システムである。
また、例えば、本発明の第10形態は、複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムに、前記ツリー構造上の位置を移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、前記移動先の親ノードが、前記応答を受信すると、形成された前記接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、前記移動するノードが、形成された前記接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、を実行させるためのプログラムである。
また、例えば、本発明の第11形態は、複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムに、前記ツリー構造における葉ノードを置き換え対象のノードに置き換わる代替ノードとして、前記置き換え対象のノードを前記代替ノードで置き換えるため、前記ツリー構造上の位置に係るノードの移動処理によって、前記代替ノードの移動先の親ノードが前記置き換え対象のノードの親ノードとなるように、前記代替ノードを移動させるステップと、前記置き換え対象のノードが子ノードを有する場合、前記ノードの移動処理によって、前記子ノードの移動先の親ノードが前記代替ノードとなるように、前記子ノードを移動させるステップと、を実行させるためのプログラムであって、前記ノードの移動処理は、移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、前記移動先の親ノードが、前記応答を受信すると、形成された接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、前記移動するノードが、形成された接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、を含む、プログラムである。
本発明によれば、ツリー構造内において大量のメッセージが送信されるシステムであっても、当該システムの整合性を損なうことなく確実にノードの移動を可能にすることができる。
図1は、実施の形態に係る複数の情報処理装置がそれぞれノードとしてツリー構造で接続された情報処理システムを例示する。 図2は、実施の形態に係るノード(情報処理装置)を例示する。 図3は、実施の形態に係るノードの移動手順を例示する。 図4は、実施の形態に係るノードの移動手順を例示する。 図5は、実施の形態においてノードが移動した後の状態を例示する。 図6は、実施の形態に係るノードの置き換え手順を例示する。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、それぞれの実施形態に応じた具体的構成が適宜採用されてもよい。
なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメタ、マシン語等で指定される。
[構成例]
図1は、本実施形態に係る複数の情報処理装置がそれぞれノードとしてツリー構造で接続された情報処理システム1を例示する。以下では、複数の情報処理装置をそれぞれノードとも称する。
各ノード間の枝は、接続(connection)を表している。当該接続(connection)上では、メッセージの到達順序が保証される。すなわち、各ノードは、ネットワーク上でメッセージの順序が入れ替わったとしても、受信した当該メッセージを正しい順序、例えば、送信された順序に並び替えることができる。このような接続の一例として、TCP(Transmission Control Protocol)の接続を挙げることができる。
本実施形態では、各ノードは、例えば、ネットワーク上において、いずれのノードとも通信可能なように、メッシュ状に接続されてもよいし、並列に接続されてもよい。このようなネットワークにおいて、各ノードは、通信可能な複数のノードのうち、少なくとも、ツリー構造における自身の親ノードと子ノードとを把握している。これにより、図1に示されるようなツリー構造における通信が実現される。
なお、ノード間の通信に利用される接続はツリー構造の接続に限定される訳ではなく、各ノードは、ツリー構造とは無関係なノードと通信を行ってもよい。すなわち、ツリー構造とは無関係な接続(connection)がノード間の通信に利用されてもよい。
また、各ノードは、必ずしも、情報処理システム1に含まれる自身以外の全てのノードと通信可能な状態ではなくともよい。例えば、移動と無関係なノードは、移動に関係あるノードと通信可能な状態ではなくてもよい。図1に示される例では、ノードBは、ノードC以下のノードと通信可能な状態ではなくてもよい。また、ノードDは、ノードE以下のノードと通信可能な状態ではなくてもよい。
また、各ノードは、自身の親ノード及び子ノード以外に更にツリー構造について把握していてもよい。例えば、各ノードは、ツリー構造における根ノードがどのノードであるかを把握していてもよい。また、例えば、各ノードは、情報処理システム1のツリー構造全体を把握していてもよい。ここで、各ノード間で、ツリー構造について把握している度合いが異なってもよい。例えば、一部のノードは、ツリー構造について、自身の親ノードと子ノードとを把握しているのに対して、その他のノードは、ツリー構造全体を把握していてもよい。
なお、各ノードは、制御部に含まれるRAM又は記憶装置においてツリー構造に関する情報を保持することで、ツリー構造を把握する。例えば、各ノードは、ツリー構造上における自身の親ノードと子ノードとを把握するために、ツリー構造に関する情報として、ツリー構造上における自身の親ノードと子ノードとを示す情報(隣接ノード情報)を保持していてもよい。また、例えば、各ノードは、どのノードが根ノードであるかを把握するために、根ノードを示す情報(根ノード情報)を保持していてもよい。また、例えば、各ノードは、ツリー構造全体を把握するために、ツリー構造に関する情報として、ツリー構造全体を示す情報(ツリー情報)を保持していてもよい。
図1に示されるように、本実施形態に係る情報処理システム1では、例えば、全てのノードにメッセージ(message)を配信する場合、ツリー構造の根ノードであるノードAからツリー構造に従ってメッセージが配信される。すなわち、各ノードは、自身の親ノードからメッセージを受信すると、自身の子ノードに当該受信したメッセージを送信する。このようなメッセージの受信と送信が、メッセージが葉ノードに到達するまで繰り返されることで、メッセージは全てのノードに配信される。
なお、当該配信されるメッセージは、例えば、情報処理システム1が特許文献1に示されるデータベースシステムである場合、上位マスタノードから配信されるトランザクションログである。当該配信されるメッセージの内容は、実施形態に応じて、適宜選択される。以下では、このような根ノードからツリー構造に従って全てのノードに配信されるメッセージをツリーメッセージと称する。ただし、情報処理システム1では、配信されるメッセージはツリーメッセージに限定される訳ではなく、このような方法以外でメッセージが配信されてもよい。
上述のとおり、本実施形態のツリー構造における接続では、メッセージの到達順序が保証される。そのため、このようなツリーメッセージは、全てのノードにおいて同じ順序で処理することが可能である。本実施形態では、情報処理システム1に含まれる各ノードそれぞれにおいて、同じ順序でツリーメッセージが処理されることで、システムの整合性が保たれる。
なお、図1では、ノードIが、移動するノードとして、移動先の親ノードがノードCとなるように、ツリー構造上のノードの位置を移動する場面を例示している。なお、移動するノードは、ノードIに限定される訳ではなく、ツリー構造内のいずれのノードであってもよい。
ここで、ノードIの移動前の親ノードは、図1に示されるように、ノードGである。すなわち、当該ノードIの移動は、親ノードをノードGからノードCに変更するための移動と捉えることが可能である。
図2は、情報処理システム1に含まれる各ノードのハードウェア構成を例示する。図2に示されるように、各ノードは、それぞれ、CPU(Central Processing Unit)、RAM(Random Access Memory)、及び、ROM(Read Only Memory)等を含む制御部、制御部で実行されるプログラム等を記憶する記憶装置、並びに、ネットワークを介した通信を行うための通信インタフェース、が電気的に接続された情報処理装置である。なお、図2では、通信インタフェースは、「通信I/F」と記載される。制御部に含まれるRAM及びROMは主記憶装置と称され、記憶装置は補助記憶装置と称されてもよい。制御部に含まれるCPUは、処理装置と称されてもよい。各ノードは、それぞれ、PC(Personal Computer)、サーバマシン等であってもよい。
なお、各ノードそれぞれのハードウェア構成に関して、実施の形態に応じて適宜構成要素の省略、置換、及び、追加が行われてもよい。例えば、制御部は、複数のプロセッサを含んでもよい。
また、情報処理システム1に含まれる全てのノードは、同じハードウェア構成であってもよい。また、情報処理システム1に含まれる一部のノードは、その他のノードと異なる構成要素を備えてもよい。各ノードの構成要素は、実施形態に応じて、適宜選択される。
[動作例]
図3及び4は、本実施形態に係るノードの移動手順を例示する。なお、それぞれの図では、ステップを「S」と表記する。後述する図6においても同様の表記を用いる。また、図4では、ツリーメッセージAを「mA」と表記し、ツリーメッセージBを「mB」と表記する。
図3に示されるように、ステップ101では、ノードIの制御部が、通信インタフェースを利用して、接続を形成するための通信をノードCと行い、移動先の親ノードであるノードCと接続(connection)を形成する。なお、当該形成される接続では、上述のツリー構造上における接続と同様に、メッセージの到達順序が保証される。当該形成される接続の一例として、TCPの接続を挙げることができる。そして、処理は、ステップ102に進む。
ステップ102では、ノードIの制御部が、通信インタフェースを利用して、ツリー構造における根ノードであるノードAに移動リクエストを送信する。そして、処理は、ステップ103に進む。
なお、移動リクエストは、ツリー構造に従って配信されることでノードAに送信されてもよいし、ツリー構造に従わずに、ノードAに直接送信されてもよい。ツリー構造に従って配信される場合、ノードIは、自身が保持しているツリー構造に関する情報を参照して、移動リクエストを自身の親ノードであるノードGに送信する。ノードG、E、及び、Cの制御部は、それぞれ、自身が保持しているツリー構造に関する情報を参照して、受信した移動リクエストを自身の親ノードに送信する。これにより、移動リクエストは、ツリー構造に従って配信されて(図1に示される例では、ノードI、G、E、C、Aの順に配信されて)、ノードAに送信される。このとき、各ノードは、ツリー構造に関する情報として、自身の親ノード及び子ノード、換言すると、隣接するノードを把握していれば足りる。
他方、移動リクエストは、ツリー構造に従わずに、ノードAに直接送信されてもよい。ここで、上述のとおり、各ノードは、ツリー構造に関する情報として、自身の親ノードと子ノードとを把握するための隣接ノード情報を保持している場合がある。ノードIが当該隣接ノード情報以外にツリー構造に関する情報を保持していない場合、ノードIは、どのノードが根ノードであるか特定することができない。そこで、ノードIの制御部は、例えば、マルチキャスト又はブロードキャストで、宛先を指定せずに全てのノードに当該移動リクエストを配信することで、移動リクエストをノードAに送信してもよい。このとき、各ノードは、少なくとも隣接ノード情報により、自身の親ノードと子ノードとを把握している。そのため、各ノードは、少なくとも、自身に親ノードが存在するか否かにより、自身が根ノードであるか否かを把握することができる。よって、根ノード(ノードA)以外のノードが当該移動リクエストを無視することで、根ノード(ノードA)のみが移動リクエストを処理することができる。なお、ノードAは、自身がツリー構造上の根ノードであることを把握していてもよい。
また、各ノードは、ツリー構造に関する情報として、根ノードがどのノードであるかを把握するための根ノード情報を保持している場合がある。ノードIが当該根ノード情報を保持する場合、ノードIの制御部は、当該根ノード情報を参照することで根ノードを特定することができる。そのため、この場合、ノードIの制御部は、当該根ノード情報を参照して、根ノードはノードAであると特定して、当該ノードAに移動リクエストを送信してもよい。
また、各ノードは、ツリー構造に関する情報として、ツリー構造全体を把握するためのツリー情報を保持している場合がある。ノードIが当該ツリー情報を保持する場合、根ノード情報の場合と同様、ノードIの制御部は、当該ツリー情報を参照することで根ノードを特定することができる。そのため、この場合、ノードIの制御部は、根ノード情報の場合と同様に、当該ツリー情報を参照して、根ノードはノードAであると特定して、当該ノードAに移動リクエストを送信してもよい。
図4に示されるように、ステップ103では、ノードAの制御部が、通信インタフェースを利用して、移動リクエストに対する応答(reply)をツリー構造に従って配信する。なお、各ノードは、通信インタフェースを用いて、当該応答(reply)及びツリーメッセージの配信を行う。そして、処理は、ステップ104に進む。
ここで、図4において、ツリーメッセージAは、応答(reply)前のツリーメッセージを例示する。また、ツリーメッセージBは、応答(reply)後のツリーメッセージを例示する。更に、図4において、表記は省略されているが、楕円は応答(reply)を示し、矩形はツリーメッセージを示し、ノードB、及び、D〜Fは、それぞれ、ノードC、G、及び、Hと同じ順序でツリーメッセージと応答(reply)とを受信する。
ステップ104では、移動先の親ノードであるノードCの制御部は、応答(reply)を受信すると、通信インタフェースを利用して、応答(reply)よりも後のツリーメッセージBを移動するノードであるノードIに送信する。このとき、ノードCの制御部は、ステップ101において形成された接続(connection)を利用して、ツリーメッセージBをノードIに送信する。そして、処理は、ステップ105に進む。
なお、ノードCは、例えば、応答(reply)の内容から、受信した応答(reply)が自身の関与する応答(reply)であると認識する。
その一例として、応答(reply)には、移動するノードを示す情報が含まれていてもよい。この場合、ノードCの制御部は、受信した応答(reply)に含まれる当該情報により示される移動するノードがステップ101で接続(connection)を形成してきたノードである場合に、受信した応答(reply)が自身の関与する応答(reply)であると認識する。
また、その他の例として、応答(reply)には、移動するノードを示す情報に加えて、当該移動するノードの移動先の親ノードを示す情報が含まれているとする。この場合、ノードCの制御部は、応答(reply)に含まれる当該情報により示される移動先の親ノードが自身である場合に、受信した応答(reply)が自身の関与する応答(reply)であると認識する。
ステップ105では、ノードIの制御部は、ステップ101において形成された接続(connection)を経由して送信されたツリーメッセージBを受信すると、当該受信したツリーメッセージBをキューに保持する。そして、処理は、ステップ106に進む。
なお、キューの記憶領域は、制御部に含まれるRAMに確保されてもよいし、記憶装置に確保されてもよい。ノードIの制御部は、少なくともRAM又は記憶装置のいずれか一方にキューの記憶領域を確保し、通信インタフェースを介して受信したツリーメッセージBを当該キューに保持する。ここで、ノードIの制御部は、キューの記憶領域として、予め所定の容量の記憶領域を確保してもよいし、ツリーメッセージBをキューに保持する度に、キューの記憶領域を拡大させてもよい。キューの記憶領域を確保する方法は、実施の形態に応じて、適宜選択される。
ステップ106では、ノードIの制御部は、ツリー構造に従って配信された応答(reply)を受信すると、移動前の親ノードであるノードGから受信した応答(reply)よりも前のツリーメッセージAとキューに保持されたツリーメッセージBとにより、ノードAから配信されたツリーメッセージを再構築する。これにより、ノードIでは、ノードAから配信されるツリーメッセージの到達順序が確保される。そのため、本実施形態では、システムの整合性を損なうことなく、ノードを移動させることができる。そして、処理は、ステップ107に進む。
ここで、図4に示されるとおり、移動前の親ノードであるノードGは、ツリー構造に従って配信された応答(reply)を受信した後に、ノードIに対するツリーメッセージの配信を停止することで、応答(reply)よりも後のツリーメッセージBをノードIに送信しなくてもよい。
なお、この場合、ノードGは、例えば、応答(reply)の内容により、自身の子ノードであるノードIが移動することを認識する。上述した応答(reply)の内容の一例として挙げたとおり、応答(reply)には、移動するノードを示す情報が含まれているとする。このとき、ノードGの制御部は、受信した応答(reply)に含まれる移動するノードを示す情報により示されるノードが自身の子ノードである場合に、自身の子ノードが移動することを認識する。
本動作例では、ノードGの制御部は、ノードIが移動することを認識する。そして、ノードGの制御部は、当該認識の後、ノードIに対するツリーメッセージの配信を停止することで、応答(reply)よりも後のツリーメッセージBをノードIに送信しなくてもよい。
すなわち、ノードGの制御部は、当該認識の後は、ノードIとの接続(connection)を少なくともノードの親子関係に関する接続(connection)ではないと認識することができる。そのため、ノードGの制御部は、ノードIを子ノードとして取り扱うことを止めることで、ノードIに対するツリーメッセージの配信を停止してもよい。更に、ノードGの制御部は、当該認識の後、ノードIとの接続(connection)を切断してもよい。
また、ノードIに対するツリーメッセージBの配信をノードGが停止しない場合、ノードIの制御部は、ノードGから送信される、当該応答(reply)以降のツリーメッセージBを放棄してもよい。
ステップ107では、ノードIの制御部又はノードGの制御部が、ノードIとノードGとの間の接続(connection)を切断する。これにより、ノードIの移動は完了する。
ステップ101〜107により示されるノードの移動方法では、上述した配信されるメッセージを各ノードが保持する方法に比べて、移動するノードが、応答(reply)よりも後のツリーメッセージBをキューに保持するだけで済む。そのため、本実施形態に係るノードの移動方法によれば、上述した配信されるメッセージを各ノードが保持する方法に比べて、リソースの節約を図ることが可能になる。このようなリソースの節約の効果は、大量のツリーメッセージが流れる情報処理システムほど、高まる。そのため、特許文献1に示されるような大量のツリーメッセージが流れ得るデータベースシステムでは、本ノードの移動方法は、重要な技術となる。
また、本実施形態に係るノードの移動方法では、移動するノードのキューに保持されるツリーメッセージと移動前の親ノードから配信されるツリーメッセージとで、配信されたツリーメッセージの再構築が確実に行うことができる。そのため、本実施形態に係るノードの移動方法によれば、ノードの移動にギャンブル性を生じさせず、確実にノードを移動させることができる。そして、上述した失われたメッセージを補うための初期化処理が行われるシステムに比べて、本ノードの移動方法を実施する情報処理システム1では、当該処理化処理が不要になる分、システムの構成がシンプルになる。
更に、本ノードの移動方法では、各ノードの動作は、根ノードから配信される応答(reply)が起点となる。すなわち、本ノードの移動方法では、応答(reply)以外の情報を配信することなく、ツリー構造の再構築を行うことが可能である。
図5は、本実施形態に係る情報処理システム1においてノードIが移動した後の状態を例示する。図5では、図3及び4により示されるノードの移動処理によって、ノードIの親ノードがノードGからノードCに変更された状態が例示されている。
なお、図5に示されるとおり、ノードIが移動した後は、通常どおりにツリーメッセージの配信が行われる。そして、ノードIにおいても、その他のノードと同様に、通常どおりにツリーメッセージの処理が行われる。具体的には、ノードIの制御部は、ステップ106においてツリーメッセージの再構築を行った後、ノードCから受信するツリーメッセージをキューに保持せずに処理する。すなわち、ノードIの制御部は、ノードCから受信するツリーメッセージをキューに保持していた動作を停止し、通常どおりにツリーメッセージの処理を行う。
ここで、ノードIの制御部は、ステップ106におけるツリーメッセージの再構築が終了した後、キューを廃棄することで、確保したキューの記憶領域を解放してもよい。また、ノードIの制御部は、キューを廃棄せずに、確保したキューの記憶領域を維持し、次に移動する際に当該キューの記憶領域を利用してもよい。利用しなくなったキューの記憶領域の取扱は、実施形態に応じて、適宜選択される。
<その他>
図4では、情報処理システム1に含まれる全てのノードに、移動リクエストに対する応答(reply)が配信される例が示されている。当該応答(reply)には、移動するノードを示す情報が含まれている。
ここで、ノードの移動が生じると、移動するノード、移動先の親ノード、及び、移動前の親ノードでは、ノードの親子関係に変更が生じる。各ノードが、自身の親ノードと子ノードとを把握するために、隣接ノード情報を保持している場合、当該移動するノード、移動先の親ノード、及び、移動前の親ノードでは、当該隣接ノード情報の更新が行われる。
具体的には、上述したステップ104では、移動先の親ノードは、受信した応答(reply)に含まれている情報により示される移動するノードがステップ101で接続(connection)を形成してきたノードである場合に、受信した応答(reply)が自身の関与する応答(reply)であると認識する。このとき、移動先の親ノードの制御部は、当該情報により示される移動するノードを自身の子ノードに追加するように、保持する隣接ノード情報を更新する。
また、移動前の親ノードの制御部は、応答(reply)に含まれる情報により示される移動するノードが自身の子ノードである場合に、当該移動するノードを子ノードから削除するように、保持する隣接ノード情報を更新する。そして、移動するノードの制御部は、自身の親ノードが移動先の親ノードとなるように、保持する隣接ノード情報を更新する。これにより、各ノードは、少なくとも、自身の親ノードと子ノードとを把握し続けることができる。
なお、各ノードは、情報処理システム1のツリー構造全体を把握するために、ツリー情報を保持している場合がある。この場合、移動リクエストに対する(reply)に移動するノードを示す情報に加えて、当該移動するノードの移動先の親ノードを示す情報が含まれており、情報処理システム1に含まれる全てのノードに当該応答(reply)が配信されることで、各ノードは、ノードの移動が生じた後も、情報処理システム1のツリー構造を把握し続けることが可能である。
具体的には、各ノードの制御部は、受信した応答(reply)に含まれる情報に基づいて、移動するノードと移動先の親ノードとを把握する。そして、各ノードの制御部は、ノードの移動後の状態を示すように、保持するツリー情報を更新する。上述した動作例では、各ノードの制御部は、図1に示されるツリー構造から図5に示されるツリー構造を示すように、自身が保持するツリー情報を更新する。これにより、各ノードは、情報処理システム1のツリー構造全体を把握し続けることができる。
なお、図4では、情報処理システム1に含まれる全てのノードに、当該応答(reply)が配信される例が示されている。しかしながら、当該応答(reply)は、必ずしも、情報処理システム1に含まれる全てのノードに配信されなくてもよい。例えば、当該応答(reply)は、根ノードから移動するノードまでの経路に含まれるノード以外のノードには配信されなくてもよい。図4に示される例では、ノードB、D、F、及び、Hには、当該応答(reply)が配信されなくてもよい。
例えば、情報処理システム1の根ノードであるノードAが、制御部に含まれるRAM又は記憶装置において、情報処理システム1のツリー構造全体を把握するためのツリー情報を保持している。この場合、ノードAは、移動するノードからの移動リクエストに対する応答(reply)に当該応答(reply)が配信される経路を示す経路情報を追加して、当該応答(reply)を配信する。上記動作例では、ノードAは、ノードC、E、G、Iの順に当該応答(reply)が配信されることを示す経路情報を当該応答(reply)に追加する。ノードC、E、及び、Gは、当該経路情報を参照することで、当該応答(reply)の配信先を決定する。これにより、根ノードから移動するノードまでの経路に含まれるノードには当該応答(reply)が配信され、根ノードから移動するノードまでの経路に含まれるノード以外のノードには当該応答(reply)が配信されないようにすることができる。
そのため、このような応答(reply)の配信方法によれば、応答(reply)の配信の発生回数を抑えることが可能になり、当該応答(reply)の配信にかかるリソースの節約を実現することができる。
<ノードの置換>
図6は、本実施形態に係るノードの置き換え手順を例示する。上述したノードの移動方法を利用することで、ノードの置き換えを行うことができる。図6により示される例では、置き換え対象のノードはノードEである。また、ノードEに置き換わる代替ノードは、葉ノードであるノードIである。すなわち、図6は、図1により示されるツリー構造において、ノードEをノードIに置き換える手順を例示する。なお、以下では、上述したノードの移動方法については説明を省略して、ノードの置き換え手順を説明する。
ステップ1では、上述したノードの移動方法によって、ノードIの移動先の親ノードがノードEの親ノードであるノードCになるように、ノードIは移動する。ここで、ノードEには、子ノード(ノードFとG)が存在する。そのため、当該子ノードの移動処理として、ステップ2及び3に係る処理が実行される。なお、ノードEに子ノードが存在しない場合、当該子ノードの移動処理は省略され、ステップ4に係る処理が実行される。
ステップ2では、ノードEの子ノードであるノードGは、上述したノードの移動方法によって、自身の移動先の親ノードがノードIとなるように移動する。また、ステップ3では、ノードEの子ノードであるノードFは、上述したノードの移動方法によって、自身の親ノードがノードIとなるように移動する。ステップ2及び3の処理が終了すると、処理は、ステップ4に進む。
なお、ノードGの子ノードであるノードHには、ノードGで再構築されたツリーメッセージが配信される。これにより、ノードHにおいて、ツリーメッセージの整合性が担保される。
また、本実施形態では、ステップ2及び3は、並列に処理される。ここで、ステップ2及び3は、順番に処理されてもよい。例えば、ノードGが移動した後にノードFが移動してもよいし、ノードFが移動した後にノードGが移動してもよい。すなわち、ノードEの子ノードを移動させる順番によって、本実施形態は限定されない。
ステップ4では、ノードEとノードCとの間の接続(connection)が切断される。ステップ1〜3までの処理により、ツリー構造において、ノードIがノードEに置き換わっており、ノードEの子ノードだったノードF及びGは、ノードIの子ノードになっている。そのため、ステップ1〜3までの処理が完了した時点で、情報処理システム1には、ノードEが停止することで影響を受けるノードは存在しない。よって、情報処理システム1は、ノードEとノードCとの間の接続(connection)を切断することで、ツリー構造からノードEを退出することができる。
このような手順により、ノードを置き換えることが可能である。このようなノードの置き換えは、例えば、情報処理システム1の管理者がノードの点検を行いたい場合に、点検対象のノードをツリー構造から退出させる際に、活用される。
なお、上述した各ステップは、手動で開始されてもよいし、自動で開始されてもよい。例えば、管理者が、情報処理システム1を管理するためのクライアントPC(不図示)により、各ノードを操作することで、各ステップの処理が開始されてもよい。
また、例えば、ノードAから配信される応答(reply)が各ステップのトリガに利用されてもよい。その一例として、以下の方法が挙げられる。
まず、置き換え対象のノードであるノードEは、根ノードであるノードAに置換リクエストを送信する。例えば、ノードEは、上述した移動リクエストと同様の方法で、ノードAに置換リクエストを送信する。なお、当該置換リクエストは、ステップ4においてノードEがツリー構造から退出する点を考慮して、退出リクエストと称されてもよい。
ここで、ノードEがツリー構造全体を把握している場合、ノードEが代替ノードを決定してもよい。ノードAがツリー構造全体を把握している場合、ノードAが代替ノードを決定してもよい。また、管理者の指定によって、代替ノードが決定されてもよい。代替ノードには、システムに含まれるいずれのノードが選択されてもよく、例えば、移動してもシステムに与える影響の少ない葉ノードが選択される。ただし、本実施形態は、代替ノードの決定方法に限定される訳ではない。代替ノードの決定方法は、実施形態に応じて、適宜選択される。なお、ノードEが代替ノードを選択する方法として、次の方法が用いられてもよい。
ノードEの制御部は、例えば、システムに含まれる葉ノードを検索するための検索リクエストをツリー構造に従って配信する。当該検索リクエストは、ノードE以下のノードに配信されてもよいし、上記移動リクエストに対する応答(reply)と同様に、ノードEからのリクエストに対する応答として根ノード(ノードA)から配信されてもよい。
ここで、各ノードの制御部は、少なくとも隣接ノード情報により、自身の親ノードと子ノードとを把握している。そのため、各ノードの制御部は、少なくとも、自身が保持するツリー構造に関する情報を参照することで、自身に子ノードが存在するか否かにより、自身が葉ノードであるか否かを把握することができる。
そこで、各ノードの制御部は、自身が葉ノードであるか否かを把握しているとする。この場合に、葉ノードではないノードが当該検索リクエストを受信したとき、当該葉ノードではないノードの制御部は、受信した当該検索リクエストを自身の子ノードに配信する。一方、葉ノードが当該検索リクエストを受信したとき、当該葉ノードの制御部は、当該検索リクエストに対する応答をノードEに対して行う。
ノードEの制御部は、当該検索リクエストに対する応答を受信することで、システムに含まれる葉ノードを把握することができる。検索リクエストがノードE以下のノードに配信された場合は、ノードEは、自身の下位に存在する1又は複数の葉ノードを把握することができる(図6の例では、ノードF、H、及び、I)。他方、ノードEからのリクエストに対する応答として検索リクエストが根ノード(ノードA)から配信された場合、ノードEは、システムに含まれる全ての葉ノードを把握することができる(図6の例では、ノードB、D、F、H、及び、I)。
そして、ノードEの制御部は、返答のあった葉ノードの中から、所定の規則に従って、代替ノードを決定する。葉ノードの中から代替ノードを決定する当該所定の規則は、いかなる規則であってもよく、実施の形態に応じて、適宜選択されればよい。このような方法により、ノードEによって代替ノードが選択されてもよい。
次に、置換リクエストを受信すると、根ノード(ノードA)は、当該置換リクエストに対する応答(reply)をツリー構造に従って配信する。なお、以下では、当該置換リクエストに対する応答(reply)を置換replyと称する。また、上述したノードの移動方法における、移動リクエストに対する応答(reply)を移動replyと称する。ここで、当該置換リクエストが退出リクエストと称される場合、置換replyは退出replyと称されてもよい。
そして、当該置換replyを受信すると、代替ノード(ノードI)は、上述したノードの移動方法に基づいて、移動を開始する。すなわち、代替ノード(ノードI)は、置換replyをトリガとして、ノードの移動を開始する。
ここで、根ノード(ノードA)の制御部は、置き換え対象のノードを示す情報と代替ノードを示す情報とを含む置換replyを配信する。代替ノードの制御部は、置換replyに含まれるこれらの情報を参照することで、当該置換replyが自身の関与する置換replyであることを認識し、置き換え対象のノードがどのノードであるかを把握する。
代替ノードの制御部は、例えば、ツリー情報を保持する場合、置換replyに含まれる情報と当該ツリー情報とを参照することで、置き換え対象のノードの親ノードを特定することができる。この場合、代替ノードの制御部は、上述したノードの移動方法により、自身が保持する情報に基づいて特定できる置き換え対象のノードの親ノードが移動先の親ノードとなるようなノードの移動を開始する。
一方、代替ノードの制御部は、隣接ノード情報を保持するに過ぎない場合等、自身が保持する情報では置き換え対象のノードの親ノードを特定できない場合がある。この場合、代替ノードの制御部は、例えば、置き換え対象のノードに問い合わせることで、置き換え対象のノードの親ノードを把握してもよい。
また、例えば、置き換え対象のノードの親ノードを示す移動先情報が置換replyに含まれていてもよい。つまり、根ノード(ノードA)の制御部は、当該移動先情報を含む置換replyをツリー構造に従って配信してもよい。そして、代替ノードの制御部は、当該置換replyに含まれる移動先情報を参照することで、置き換え対象のノードの親ノードを把握してもよい。
なお、当該移動先情報を置換replyに含める方法の一例として、根ノード(ノードA)がツリー情報を保持する場合、当該根ノード(ノードA)の制御部は、当該ツリー情報を参照することで、置き換え対象のノードの親ノードを特定することができる。つまり、当該根ノード(ノードA)の制御部は、ツリー情報を参照することで、当該移動先情報により示すノードを特定することができる。よって、この場合、根ノード(ノードA)の制御部は、置き換え対象のノードの親ノードを示す移動先情報を置換replyに含めることができる。
また、その他の例として、置き換え対象のノード(ノードE)の制御部は、上記置換リクエストとともに、自身の親ノードを示す親ノード情報を根ノード(ノードA)に送信してもよい。当該親ノード情報を受信した根ノード(ノードA)の制御部は、当該受信した親ノード情報を移動先情報として置換replyに含める。これにより、置き換え対象のノードの親ノードを示す移動先情報を置換replyに含めることができる。
そして、代替ノードの制御部は、このようにして把握した置き換え対象のノードの親ノードが移動先の親ノードとなるようなノードの移動を開始する。図6において示される例では、ノードIは、ノードEの親ノードであるノードCが移動先の親ノードとなるようなノードの移動を開始する(ステップ1)。
そして、置き換え対象のノード(ノードE)の子ノードは、代替ノード(ノードI)の移動の際に配信される移動replyを受信することで、移動を開始する。すなわち、置き換え対象のノード(ノードE)の子ノードは、代替ノード(ノードI)の移動の際に配信される移動replyをトリガとして、移動を開始する。
なお、図6に示される例では、置き換え対象のノード(ノードE)には、複数の子ノード(ノードG及びF)が存在する。本実施形態では、上述のとおり、置き換え対象のノードに複数の子ノードが存在する場合、当該複数の子ノードは、並列に移動を開始する。
当該複数の子ノードは、互いにツリーメッセージを配信する関係にない。そのため、それぞれが並列に移動を開始しても、それぞれが受信するツリーメッセージの到達順序が損なわれることはない。よって、本実施形態では、置き換え対象のノードに複数の子ノードが存在する場合、当該複数の子ノードは、並列に移動を開始する。
具体的には、まず、置き換え対象のノードの子ノードの制御部は、受信した置換replyに含まれる情報を参照することで、代替ノードがどのノードであるかを把握し、かつ、自身の親ノードが置き換え対象のノードであることを認識する。
次に、置き換え対象のノードの子ノードの制御部は、把握した代替ノードの移動に際して配信される移動replyが配信されてくるまで待機する。移動replyには、上述のとおり、移動するノードを示す情報が含まれている。そのため、置き換え対象のノードの子ノードの制御部は、当該移動replyに含まれる情報を参照することで、受信した移動replyが、代替ノードの移動の際に配信された移動replyか否かを特定することができる。
そして、置き換え対象のノードの子ノードの制御部は、代替ノードの移動の際に配信された移動replyを受信すると、当該代替ノードが移動先の親ノードとなるようなノードの移動を開始する。図6において示される例では、ノードG及びFは、ノードIが移動先の親ノードとなるようなノードの移動を並列に開始する(ステップ2及び3)。
最後に、置き換え対象のノードの制御部は、自身の子ノードとの接続(connection)が切断された時点で、自身の親ノードとの接続(connection)を切断し、ツリー構造から退出する。
具体的には、上述したノードの移動方法では、ステップ107において、移動するノードと移動前の親ノードとの間の接続(connection)が切断される。上述の動作例では、移動するノード又は移動前の親ノードが当該接続(connection)を切断する。つまり、置き換え対象のノード又は当該置き換え対象のノードの子ノードが、当該置き換え対象のノードの子ノードの移動に際して、置き換え対象のノードと当該置き換え対象のノードの子ノードとの間の接続(connection)を切断する。
置き換え対象のノードの制御部は、自身の子ノードとの接続(connection)が切断された後に、自身の親ノードとの接続(connection)を切断し、ツリー構造から退出する。図6に示される例では、ノードEは、ノードG及びFとの接続(connection)が切断された後に、ノードCとの接続(connection)を切断して、ツリー構造から退出する(ステップ4)。
なお、上述のとおり、置き換え対象のノードに複数の子ノードが存在する場合、当該複数の子ノードが順番にノードの移動を行ってもよい。例えば、置き換え対象のノード(ノードE)に複数の子ノードが存在する場合、当該複数の子ノードのうちの少なくとも1つの子ノードは、ノードIの移動の際に配信される移動replyを受信することで、移動を開始する。そして、当該複数の子ノードのうちの第1の子ノードの移動の際に配信される移動replyを受信することで、第2の子ノードが移動を開始する。すなわち、第2の子ノードは、第1の子ノードの移動の際に配信される移動replyをトリガとして、上述したノードの移動方法に基づいて、移動を開始する。
例えば、ノードFは、ノードIの移動において配信される移動replyを受信することで、移動を開始してもよい(ステップ2)。そして、ノードGは、ノードFの移動の際に配信される移動replyを受信することで、移動を開始してもよい(ステップ3)。この場合、ノードFが第1の子ノードに相当し、ノードGが第2の子ノードに相当する。
また、ノードGが、ノードIの移動の際に配信される移動replyを受信することで、移動を開始してもよい。そして、ノードFは、ノードGの移動の際に配信される移動replyを受信することで、移動を開始してもよい。すなわち、ノードGとノードFの移動する順番は入れ替ってもよい。この場合、ノードGが第1の子ノードに相当し、ノードFが第2の子ノードに相当する。
置き換え対象のノードに複数の子ノードが存在する場合における、当該複数の子ノードの移動順序は、実施形態に応じて、適宜決定される。例えば、各ノードに番号が与えられている場合、当該番号に基づいて、当該複数の子ノードの移動順序が決定されてもよい。
この場合、置き換え対象のノードの有する複数の子ノードは、それぞれ、自身が保持するツリー構造に関する情報により、自身を含み、置き換え対象のノードの有する子ノードがどのノードであるかを把握している。そして、当該置き換え対象のノードの有する複数の子ノードは、それぞれに付与されている番号を把握している。これにより、置き換え対象のノードの有する複数の子ノードは、各々、移動replyを受信する度に、これらの情報に基づいて、自身が移動する番であるか否かを判定する。
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
1…情報処理システム
A〜I…ノード(情報処理装置)

Claims (11)

  1. 複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムにおける、該ツリー構造上のノードの位置の移動に係るツリー構造の管理方法であって、
    移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、
    前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、
    前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、
    前記移動先の親ノードが、前記応答を受信すると、形成された前記接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、
    前記移動するノードが、形成された前記接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、
    前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、
    前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、
    を含むツリー構造の管理方法。
  2. 前記移動するノードは、配信されたメッセージを再構築した後、前記移動先の親ノードから受信するメッセージを、キューに保持せずに処理する、
    請求項1に記載のツリー構造の管理方法。
  3. 前記移動前の親ノードは、前記ツリー構造に従って配信された前記応答を受信した後に前記移動するノードに対するメッセージの配信を停止することで、前記応答よりも後のメッセージを前記移動するノードに送信しない、
    請求項1又は2に記載のツリー構造の管理方法。
  4. 前記移動リクエストに対する応答は、前記移動するノードを示す情報と前記移動するノードの移動先を示す情報とを含み、前記情報処理システムに含まれるすべてのノードに前記ツリー構造に従って配信される、
    請求項1から3のいずれか1項に記載のツリー構造の管理方法。
  5. 前記移動リクエストに対する応答は、前記根ノードから前記移動するノードまでの経路に含まれるノードに配信される、
    請求項1から3のいずれか1項に記載のツリー構造の管理方法。
  6. 複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムにおけるノードの置き換えに係るツリー構造の管理方法であって、
    前記ツリー構造における葉ノードを置き換え対象のノードに置き換わる代替ノードとして、前記置き換え対象のノードを前記代替ノードで置き換えるため、前記ツリー構造上の位置に係るノードの移動処理によって、前記代替ノードの移動先の親ノードが前記置き換え対象のノードの親ノードとなるように、前記代替ノードを移動させるステップと、
    前記置き換え対象のノードが子ノードを有する場合、前記ノードの移動処理によって、前記子ノードの移動先の親ノードが前記代替ノードとなるように、前記子ノードを移動させるステップと、
    を含み、
    前記ノードの移動処理は、
    移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、
    前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、
    前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、
    前記移動先の親ノードが、前記応答を受信すると、形成された接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、
    前記移動するノードが、形成された接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、
    前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、
    前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、
    を含む、
    ツリー構造の管理方法。
  7. 前記置き換え対象のノードが、前記ツリー構造における根ノードに置換リクエストを送信するステップと、
    前記根ノードが、前記置換リクエストに対する応答を、前記ツリー構造に従って配信するステップと、
    を更に含み、
    前記代替ノードは、前記根ノードから配信される、前記置換リクエストに対する応答を受信することで、前記ノードの移動処理に基づくノードの移動を開始し、
    前記置き換え対象のノードが子ノードを有する場合、該子ノードは、前記代替ノードの移動の際に配信される、前記移動リクエストに対する応答を受信することで、前記ノードの移動処理に基づくノードの移動を開始する、
    請求項6に記載のツリー構造の管理方法。
  8. 複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムであって、
    前記ツリー構造上の位置を移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成する手段と、
    前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信する手段と、
    前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信する手段と、
    前記移動先の親ノードが、前記応答を受信すると、形成された前記接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信する手段と、
    前記移動するノードが、形成された前記接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持する手段と、
    前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築する手段と、
    前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断する手段と、
    を備える情報処理システム。
  9. 複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムであって、
    前記ツリー構造における葉ノードを置き換え対象のノードに置き換わる代替ノードとして、前記置き換え対象のノードを前記代替ノードで置き換えるため、前記ツリー構造上の位置に係るノードの移動処理によって、前記代替ノードの移動先の親ノードが前記置き換え対象のノードの親ノードとなるように、前記代替ノードを移動させる手段と、
    前記置き換え対象のノードが子ノードを有する場合、前記ノードの移動処理によって、前記子ノードの移動先の親ノードが前記代替ノードとなるように、前記子ノードを移動させる手段と、
    を備え、
    前記ノードの移動処理は、
    移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、
    前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、
    前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、
    前記移動先の親ノードが、前記応答を受信すると、形成された接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、
    前記移動するノードが、形成された接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、
    前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、
    前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、
    を含む、
    情報処理システム。
  10. 複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムに、
    前記ツリー構造上の位置を移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、
    前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、
    前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、
    前記移動先の親ノードが、前記応答を受信すると、形成された前記接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、
    前記移動するノードが、形成された前記接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、
    前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、
    前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、
    を実行させるためのプログラム。
  11. 複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムに、
    前記ツリー構造における葉ノードを置き換え対象のノードに置き換わる代替ノードとして、前記置き換え対象のノードを前記代替ノードで置き換えるため、前記ツリー構造上の位置に係るノードの移動処理によって、前記代替ノードの移動先の親ノードが前記置き換え対象のノードの親ノードとなるように、前記代替ノードを移動させるステップと、
    前記置き換え対象のノードが子ノードを有する場合、前記ノードの移動処理によって、前記子ノードの移動先の親ノードが前記代替ノードとなるように、前記子ノードを移動させるステップと、
    を実行させるためのプログラムであって、
    前記ノードの移動処理は、
    移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、
    前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、
    前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、
    前記移動先の親ノードが、前記応答を受信すると、形成された接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、
    前記移動するノードが、形成された接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、
    前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、
    前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、
    を含む、
    プログラム。
JP2014524509A 2012-07-09 2012-07-09 ツリー構造の管理方法、情報処理システム、及び、プログラム Active JP5960820B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/067473 WO2014010014A1 (ja) 2012-07-09 2012-07-09 ツリー構造の管理方法、情報処理システム、及び、プログラム

Publications (2)

Publication Number Publication Date
JPWO2014010014A1 JPWO2014010014A1 (ja) 2016-06-20
JP5960820B2 true JP5960820B2 (ja) 2016-08-02

Family

ID=49915517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014524509A Active JP5960820B2 (ja) 2012-07-09 2012-07-09 ツリー構造の管理方法、情報処理システム、及び、プログラム

Country Status (4)

Country Link
US (1) US9571299B2 (ja)
EP (1) EP2871578B1 (ja)
JP (1) JP5960820B2 (ja)
WO (1) WO2014010014A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10965459B2 (en) 2015-03-13 2021-03-30 Fornetix Llc Server-client key escrow for applied key management system and process
US9317347B1 (en) * 2015-03-23 2016-04-19 Juniper Networks, Inc. Systems and methods for facilitating atomic delivery of bundled data sets to applications within distributed systems
CN106557399B (zh) * 2015-09-25 2019-09-06 伊姆西公司 用于呈现存储集群的状态的方法和装置
US10931653B2 (en) * 2016-02-26 2021-02-23 Fornetix Llc System and method for hierarchy manipulation in an encryption key management system
US10419547B1 (en) * 2017-04-10 2019-09-17 Plesk International Gmbh Method and system for composing and executing server migration process
CN111045857B (zh) * 2018-10-12 2023-11-28 伊姆西Ip控股有限责任公司 数据备份和恢复的方法、电子设备和计算机可读存储介质
WO2021078399A1 (en) * 2019-10-25 2021-04-29 European Space Agency Aggregated communication network
CN113708961B (zh) * 2021-08-20 2022-09-16 珠海格力电器股份有限公司 迁移设备的方法、装置、系统及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6023461A (en) * 1997-10-10 2000-02-08 Nec Usa, Inc. Handoff method for an ATM wireless network wherein both the switch and the mobile buffer cells and the mobile controls when the handoff will occur
EP0891114A1 (en) * 1997-07-12 1999-01-13 Telefonaktiebolaget Lm Ericsson Method and system for performing an optimised hand over
JP3545267B2 (ja) * 1999-07-14 2004-07-21 日本電信電話株式会社 データ複製方法およびデータ複製プログラムを記録した記録媒体
US7512676B2 (en) * 2001-09-13 2009-03-31 Network Foundation Technologies, Llc Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
US7277905B2 (en) 2004-03-31 2007-10-02 Microsoft Corporation System and method for a consistency check of a database backup
CA2737166C (en) * 2008-09-12 2018-01-09 Network Foundation Technologies, Llc System of distributing content data over a computer network and method of arranging nodes for distribution of data over a computer network
US8423507B2 (en) 2009-03-19 2013-04-16 Murakumo Corporation Method and system for managing replication of data
WO2012056734A1 (ja) 2010-10-26 2012-05-03 株式会社Murakumo データベースの管理方法

Also Published As

Publication number Publication date
US20150124656A1 (en) 2015-05-07
WO2014010014A1 (ja) 2014-01-16
EP2871578B1 (en) 2018-05-02
EP2871578A4 (en) 2016-07-06
US9571299B2 (en) 2017-02-14
EP2871578A1 (en) 2015-05-13
JPWO2014010014A1 (ja) 2016-06-20

Similar Documents

Publication Publication Date Title
JP5960820B2 (ja) ツリー構造の管理方法、情報処理システム、及び、プログラム
US8838703B2 (en) Method and system for message processing
US20140089619A1 (en) Object replication framework for a distributed computing environment
CN104092719B (zh) 文件传输方法、装置及分布式集群文件系统
CN104503845A (zh) 一种任务分发方法和系统
CN111787079B (zh) 基于通信群组的通信方法、装置、服务器、系统及介质
JP2013097548A (ja) 情報処理システム、情報処理装置、クライアント端末、情報処理方法、及びプログラム
US10972296B2 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
CN111935242B (zh) 数据传输方法、装置、服务器以及存储介质
CN110602244A (zh) 分布式存储系统消息交互方法、节点及分布式存储系统
TW201234183A (en) Access control method, access control apparatus, and access control program
CN106059936B (zh) 云系统组播文件的方法及装置
WO2017185992A1 (zh) 一种请求消息传输方法及装置
JP5509564B2 (ja) メッセージ送信方法及びプログラム
CN106790354B (zh) 一种防数据拥堵的通信方法及其装置
CN106357728B (zh) 信息处理方法、系统及终端
CN110798349B (zh) 一种配置分发、接收方法、设备及计算机可读存储介质
CN110166487B (zh) 局域网设备信息传输方法、主设备、存储介质及智能设备
CN116684416A (zh) 一种网元集群中的镜像分发方法、装置和系统
CN114143730B (zh) 信令处理方法、通信系统、电子设备和存储介质
CN114025005B (zh) 一种数据通讯方法、系统、电子设备及存储介质
CN108076111B (zh) 一种在大数据平台中分发数据的系统及方法
CN112104888B (zh) 一种直播用户分组的方法及系统
US9800672B2 (en) Computer work distribution system and method
CN111083182B (zh) 分布式物联网设备管理方法及装置

Legal Events

Date Code Title Description
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: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160623

R150 Certificate of patent or registration of utility model

Ref document number: 5960820

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250