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

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

Info

Publication number
WO2014010014A1
WO2014010014A1 PCT/JP2012/067473 JP2012067473W WO2014010014A1 WO 2014010014 A1 WO2014010014 A1 WO 2014010014A1 JP 2012067473 W JP2012067473 W JP 2012067473W WO 2014010014 A1 WO2014010014 A1 WO 2014010014A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
moving
tree structure
response
parent
Prior art date
Application number
PCT/JP2012/067473
Other languages
English (en)
French (fr)
Inventor
山田 浩之
Original Assignee
株式会社Murakumo
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 filed Critical 株式会社Murakumo
Priority to EP12881107.2A priority Critical patent/EP2871578B1/en
Priority to JP2014524509A priority patent/JP5960820B2/ja
Priority to PCT/JP2012/067473 priority patent/WO2014010014A1/ja
Publication of WO2014010014A1 publication Critical patent/WO2014010014A1/ja
Priority to US14/592,424 priority patent/US9571299B2/en

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

Definitions

  • the present invention relates to a tree structure management method, an information processing system, and a program.
  • the plurality of information processing apparatuses may be connected to a tree structure as nodes.
  • a database system in which a plurality of master nodes are hierarchically connected by a network (Patent Document 1).
  • each node from the root node is connected using a connection between the nodes in the tree structure.
  • a message is sent to the node.
  • Patent Document 1 a scene in which a message related to replication is transmitted to each node by using a connection between the nodes in the tree structure is illustrated.
  • each node executes processing related to the received message.
  • the moving node When maintaining the tree structure, the moving node disconnects the current connection and forms a new connection (reconnection) during the movement. At this time, the moving node cannot receive a message transmitted between disconnection and reconnection.
  • each node keeps all of the messages that are sent and sent between the disconnection and reconnection of the moving node for the moving node as described above. There is a way to resend a message.
  • a large number of messages may be transmitted. In such a case, a method in which each node holds all transmitted messages is not realistic from the viewpoint of resources.
  • the node cannot be reliably moved without impairing the consistency of the system.
  • the present invention has been made in consideration of such points, and even in a system in which a large number of messages are transmitted in a tree structure, node movement can be reliably performed without impairing the consistency of the system.
  • the aim is to provide technology that makes it possible.
  • a first aspect of the present invention is a tree related to movement of the position of a node on the tree structure in an information processing system in which a plurality of information processing apparatuses are connected as nodes in a tree structure and a message is distributed according to the tree structure.
  • a structure management method wherein a moving node forms a connection with a parent node of a moving destination that becomes a parent node of the moving node by movement, and the moving node becomes a root node in the tree structure.
  • a connection is formed between a moving node and a destination parent note in a tree structure.
  • a movement request is transmitted from the moving node to the root node, and a response to the movement request is distributed from the root node according to a tree structure.
  • a message after the response is transmitted to the moving node via the formed connection.
  • messages after the response received via the formed connection are held in the queue.
  • the moving node receives the response distributed according to the tree structure, the moving node receives a message before the response received from the parent node before the movement and a message after the response held in the queue.
  • the delivered message is reconstructed.
  • the connection between the moving node and the parent node before the movement is disconnected, and the movement of the moving node is completed.
  • the first aspect of the present invention it is possible to reliably reconstruct the distributed message by using the message held in the queue of the moving node. Gambling does not occur, and the node can be moved reliably.
  • the amount of messages held for message reconstruction only needs to be held by the queue of the moving node, resources can be saved significantly compared to the method in which each node holds all transmitted messages. can do. Therefore, according to the first aspect of the present invention, even in a system in which a large number of messages are transmitted in a tree structure, it is possible to reliably move a node without impairing the consistency of the system.
  • the second form of the present invention is the tree of the first form, wherein the moving node processes the message received from the move-destination parent node without holding it in the queue after reconstructing the distributed message.
  • This is a structure management method.
  • the parent node before the movement stops the message delivery to the moving node after receiving the response distributed according to the tree structure, so that the message after the response Is not transmitted to the moving node.
  • the tree structure management method of the first or second form is
  • the response to the movement request includes information indicating the moving node and information indicating a movement destination of the moving node, and the tree is included in all nodes included in the information processing system. It is a management method of the tree structure of any form of the 1st form to the 3rd form distributed according to a structure.
  • the response to the movement request is distributed to a node included in a route from the root node to the moving node.
  • the tree structure according to any one of the first to third aspects It is a management method.
  • a sixth aspect of the present invention is a tree structure management method related to node replacement in an information processing system in which a plurality of information processing devices are connected as nodes in a tree structure, and messages are distributed according to the tree structure, As a replacement node that replaces a leaf node in the tree structure with a replacement target node, the replacement node is replaced by the replacement node.
  • the step of moving the node includes the step of forming a connection between the moving node and the parent node of the moving destination that becomes the parent node of the moving node by moving, and the moving node includes: Sending a move request to a root node in the tree structure; the root node delivering a response to the move request according to the tree structure; and the destination parent node receiving the response; Transmitting a message after the response to the moving node via the formed connection; and a message received by the moving node from the destination parent node via the formed connection.
  • the response that the moving node has been distributed according to the tree structure Receiving, reconstructing the delivered message with a message prior to the response received from the parent node prior to movement of the moving node and a message after the response held in the queue;
  • the moving node or the parent node before the movement disconnects the connection between the moving node and the parent node before the movement.
  • the node to be replaced transmits a replacement request to a root node in the tree structure, and the root node distributes a response to the replacement request according to the tree structure.
  • the replacement node receives a response to the replacement request distributed from the root node, and starts moving the node based on the movement processing of the node, and the replacement target node is a child.
  • the child node starts moving the node based on the movement process of the node by receiving a response to the movement request distributed when the alternative node moves. It is a management method of the tree structure.
  • an information processing system that realizes each of the above-described structures, a program, or such a program is recorded. It may be a storage medium readable by a computer, other devices, machines, or the like.
  • the computer-readable recording medium is a medium that stores information such as programs by electrical, magnetic, optical, mechanical, or chemical action.
  • the database system may be realized by one or a plurality of computers.
  • an eighth embodiment of the present invention is an information processing system in which a plurality of information processing apparatuses are connected as nodes in a tree structure, and messages are distributed according to the tree structure, and the position on the tree structure is moved.
  • the ninth embodiment of the present invention is an information processing system in which a plurality of information processing apparatuses are connected as nodes in a tree structure, and a message is distributed according to the tree structure.
  • the replacement target node of the replacement node is moved to the replacement target by the node movement processing related to the position on the tree structure.
  • the moving process includes a step in which a moving node forms a connection with a parent node that is a parent node of the moving node by movement, and the moving node sends a move request to a root node in the tree structure. And a step in which the root node distributes a response to the move request in accordance with the tree structure, and when the destination parent node receives the response, the root node moves through the formed connection.
  • a position on the tree structure is moved to an information processing system in which a plurality of information processing apparatuses are connected as nodes, respectively, in a tree structure, and messages are distributed according to the tree structure.
  • a node forming a connection with a destination parent node that becomes a parent node of the moving node by movement; a step in which the moving node sends a movement request to a root node in the tree structure;
  • a node distributes a response to the move request according to the tree structure, and when the destination parent node receives the response, the node sends the response to the moving node via the formed connection.
  • Sending a later message and the moving node via the formed connection A message received from the destination parent node in a queue, and when the moving node receives the response distributed according to the tree structure, the message is received from the parent node before the movement of the moving node.
  • Reconstructing the delivered message with a message before the response and a message after the response held in the queue, and the moving node or the parent node before the movement And a step of disconnecting a connection between the moving node and the parent node before the movement.
  • a leaf node in the tree structure is replaced with an information processing system in which a plurality of information processing apparatuses are connected as nodes in a tree structure and a message is distributed according to the tree structure.
  • the parent node to which the alternative node is moved becomes the node to be replaced by moving the node according to the position on the tree structure. Moving the alternative node so as to become a parent node of the node, and when the node to be replaced has a child node, the parent node to which the child node is moved is changed to the alternative node by the movement process of the node.
  • the movement process of the node includes a step in which the moving node forms a connection with a parent node of a movement destination that becomes a parent node of the moving node by movement, and the moving node has the tree structure.
  • a moving node or a parent node before moving disconnects the connection between the moving node and the parent node before moving.
  • FIG. 1 illustrates an information processing system in which a plurality of information processing apparatuses according to an embodiment are connected as nodes in a tree structure.
  • FIG. 2 illustrates a node (information processing apparatus) according to the embodiment.
  • FIG. 3 illustrates a node moving procedure according to the embodiment.
  • FIG. 4 illustrates a procedure for moving a node according to the embodiment.
  • FIG. 5 illustrates a state after the node has moved in the embodiment.
  • FIG. 6 illustrates a node replacement procedure according to the embodiment.
  • this embodiment an embodiment according to one aspect of the present invention (hereinafter also referred to as “this embodiment”) will be described with reference to the drawings.
  • the present embodiment described below is merely an example of the present invention in all points, and is not intended to limit the scope thereof. It goes without saying that various improvements and modifications can be made without departing from the scope of the present invention. That is, in implementing the present invention, a specific configuration according to each embodiment may be employed as appropriate.
  • data appearing in this embodiment is described in a natural language, more specifically, it is specified by a pseudo language, a command, a parameter, a machine language, etc. that can be recognized by a computer.
  • FIG. 1 illustrates an information processing system 1 in which a plurality of information processing apparatuses according to the present embodiment are connected as nodes in a tree structure.
  • each of the plurality of information processing apparatuses is also referred to as a node.
  • the branch between each node represents a connection.
  • the message arrival order is guaranteed on the connection. That is, each node can rearrange the received messages in the correct order, for example, the transmitted order, even if the order of the messages is changed on the network.
  • An example of such a connection is a TCP (Transmission-Control-Protocol) connection.
  • each node may be connected in a mesh shape or in parallel so as to be able to communicate with any node on the network, for example.
  • each node grasps at least its own parent node and child node in the tree structure among a plurality of communicable nodes. Thereby, communication in a tree structure as shown in FIG. 1 is realized.
  • connection used for communication between nodes is not limited to a tree structure connection, and each node may communicate with a node unrelated to the tree structure. That is, a connection unrelated to the tree structure may be used for communication between nodes.
  • each node is not necessarily in a state where it can communicate with all nodes other than itself included in the information processing system 1.
  • a node unrelated to movement may not be in a state where it can communicate with a node related to movement.
  • the node B may not be in a state where it can communicate with a node below the node C.
  • the node D does not have to be in a state where it can communicate with nodes below the node E.
  • each node may further grasp the tree structure in addition to its own parent node and child node. For example, each node may know which node is the root node in the tree structure. Further, for example, each node may grasp the entire tree structure of the information processing system 1. Here, the degree of understanding the tree structure may be different between the nodes. For example, some nodes may grasp their own parent nodes and child nodes with respect to the tree structure, while other nodes may grasp the entire tree structure.
  • Each node grasps the tree structure by holding information on the tree structure in the RAM or the storage device included in the control unit. For example, each node has information (adjacent node information) indicating its parent node and child node on the tree structure as information on the tree structure in order to grasp its parent node and child node on the tree structure. May be held. Further, for example, each node may hold information indicating the root node (root node information) in order to grasp which node is the root node. For example, each node may hold information (tree information) indicating the entire tree structure as information regarding the tree structure in order to grasp the entire tree structure.
  • the message is distributed from the node A, which is the root node of the tree structure, according to the tree structure. Is done. That is, when each node receives a message from its own parent node, it transmits the received message to its child node. Such message reception and transmission is repeated until the message reaches the leaf node, so that the message is distributed to all nodes.
  • the message to be distributed is, for example, a transaction log distributed from an upper master node when the information processing system 1 is a database system disclosed in Patent Document 1.
  • the content of the message to be distributed is appropriately selected according to the embodiment.
  • a message distributed from the root node to all the nodes according to the tree structure is referred to as a tree message.
  • the message to be distributed is not limited to the tree message, and the message may be distributed by other methods.
  • the message arrival order is guaranteed. Therefore, such tree messages can be processed in the same order at all nodes.
  • the consistency of the system is maintained by processing the tree messages in the same order at each node included in the information processing system 1.
  • FIG. 1 illustrates a scene in which the node I moves the position of the node on the tree structure so that the destination parent node is the node C as the node to be moved.
  • the moving node is not limited to the node I, and may be any node in the tree structure.
  • the parent node before the movement of the node I is the node G as shown in FIG. That is, the movement of the node I can be regarded as a movement for changing the parent node from the node G to the node C.
  • FIG. 2 illustrates the hardware configuration of each node included in the information processing system 1.
  • each node includes a control unit including a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), a program executed by the control unit, and the like.
  • a control unit including a CPU (Central Processing Unit), a RAM (Random Access Memory), a ROM (Read Only Memory), a program executed by the control unit, and the like.
  • a storage device for storing the information and a communication interface for performing communication via a network are electrically connected.
  • the communication interface is described as “communication I / F”.
  • the RAM and ROM included in the control unit may be referred to as a main storage device, and the storage device may be referred to as an auxiliary storage device.
  • the CPU included in the control unit may be referred to as a processing device.
  • Each node may be a PC (Personal Computer), a server machine, or the like.
  • control unit may include a plurality of processors.
  • all nodes included in the information processing system 1 may have the same hardware configuration. Some nodes included in the information processing system 1 may include different components from other nodes. The components of each node are appropriately selected according to the embodiment. *
  • FIG. 3 and 4 exemplify a procedure for moving a node according to the present embodiment.
  • a step is expressed as “S”.
  • the same notation is used in FIG. 6 described later.
  • the tree message A is expressed as “mA”
  • the tree message B is expressed as “mB”.
  • step 101 the control unit of node I performs communication for forming a connection with node C using the communication interface, and connects with node C, which is the parent node of the movement destination. (Connection) is formed. Note that, in the formed connection, the arrival order of the messages is guaranteed as in the connection on the tree structure described above.
  • An example of the connection to be formed is a TCP connection. Then, the process proceeds to step 102.
  • step 102 the control unit of node I transmits a movement request to node A, which is the root node in the tree structure, using the communication interface. Then, the process proceeds to step 103.
  • the movement request may be transmitted to the node A by being distributed according to the tree structure, or may be directly transmitted to the node A without following the tree structure.
  • the node I refers to the information regarding the tree structure held by itself, and transmits a movement request to the node G that is its parent node.
  • the control units of the nodes G, E, and C refer to the information about the tree structure held by the nodes G, E, and C, respectively, and transmit the received movement request to their parent nodes.
  • the movement request is distributed according to the tree structure (in the example shown in FIG. 1, distributed in the order of nodes I, G, E, C, and A) and transmitted to node A.
  • each node only needs to grasp its own parent node and child node, in other words, adjacent nodes, as information regarding the tree structure.
  • the movement request may be transmitted directly to the node A without following the tree structure.
  • each node may hold adjacent node information for grasping its own parent node and child node as information regarding the tree structure.
  • the control unit of the node I may transmit the movement request to the node A by distributing the movement request to all the nodes without specifying the destination, for example, by multicast or broadcast.
  • each node grasps its own parent node and child node based on at least adjacent node information.
  • each node can grasp whether or not it is a root node based on whether or not the parent node exists at least. Therefore, nodes other than the root node (node A) ignore the movement request, so that only the root node (node A) can process the movement request. Note that the node A may know that it is a root node on the tree structure.
  • each node may hold root node information for grasping which node is the root node as information regarding the tree structure.
  • the control unit of the node I can identify the root node by referring to the root node information. Therefore, in this case, the control unit of the node I may refer to the root node information, specify that the root node is the node A, and transmit a movement request to the node A.
  • each node may hold tree information for grasping the entire tree structure as information about the tree structure.
  • the control unit of the node I can specify the root node by referring to the tree information. Therefore, in this case, as in the case of the root node information, the control unit of the node I refers to the tree information, specifies that the root node is the node A, and transmits a movement request to the node A. May be.
  • step 103 the control unit of the node A delivers a response (reply) to the movement request according to the tree structure using the communication interface.
  • Each node distributes the reply and the tree message using a communication interface. Then, the process proceeds to step 104.
  • a tree message A is an example of a tree message before reply.
  • the tree message B is an example of a tree message after a reply.
  • an ellipse indicates a reply
  • a rectangle indicates a tree message
  • nodes B and D to F are nodes C, G, and H, respectively.
  • the tree message and reply are received in the same order as.
  • Step 104 when receiving the reply (reply), the control unit of the node C that is the parent node of the movement destination is a node that moves the tree message B after the reply (reply) using the communication interface. Transmit to node I. At this time, the control unit of the node C transmits the tree message B to the node I using the connection formed in step 101. Then, the process proceeds to step 105.
  • the node C recognizes that the received response (reply) is a response (reply) in which the node C is involved, for example, from the content of the response (reply).
  • the reply may include information indicating the moving node.
  • the control unit of the node C receives the response (reply) when the moving node indicated by the information included in the received response (reply) is the node that has formed a connection (connection) in step 101. ) Is its own reply. *
  • a reply includes information indicating the destination parent node of the moving node in addition to the information indicating the moving node.
  • the control unit of the node C receives the response (reply) as a response (reply) with which the node C is involved. Recognize that there is.
  • step 105 when receiving the tree message B transmitted via the connection formed in step 101, the control unit of the node I holds the received tree message B in the queue. Then, the process proceeds to Step 106.
  • the storage area of the queue may be secured in a RAM included in the control unit, or may be secured in a storage device.
  • the control unit of the node I secures a storage area for the queue in at least one of the RAM and the storage device, and holds the tree message B received via the communication interface in the queue.
  • the control unit of the node I may reserve a storage area of a predetermined capacity in advance as a storage area of the queue, or expand the storage area of the queue every time the tree message B is held in the queue. Also good.
  • a method for securing the storage area of the queue is appropriately selected according to the embodiment.
  • Step 106 when the control unit of the node I receives the reply distributed according to the tree structure, the tree message A and the queue before the reply received from the node G that is the parent node before the movement are sent.
  • the tree message distributed from the node A is reconstructed by using the tree message B held in FIG. Thereby, in the node I, the arrival order of the tree messages distributed from the node A is ensured. Therefore, in this embodiment, it is possible to move a node without impairing system consistency. Then, the process proceeds to step 107.
  • the node G which is the parent node before movement, receives the reply distributed according to the tree structure, and then stops the delivery of the tree message to the node I, thereby responding.
  • the tree message B after (reply) may not be transmitted to the node I.
  • the node G recognizes that the node I, which is its own child node, moves, for example, according to the contents of the reply. As described above as an example of the contents of the reply, it is assumed that the reply includes information indicating the node to be moved. At this time, the control unit of the node G recognizes that its own child node moves when the node indicated by the information indicating the moving node included in the received reply (reply) is its own child node. .
  • control unit of the node G recognizes that the node I moves. And the control part of the node G does not need to transmit the tree message B after the reply (reply) to the node I by stopping the delivery of the tree message to the node I after the recognition.
  • the control unit of the node G can recognize that the connection with the node I is not at least a connection related to the parent-child relationship of the node. Therefore, the control unit of the node G may stop the delivery of the tree message to the node I by stopping handling the node I as a child node. Further, the control unit of the node G may disconnect the connection with the node I after the recognition.
  • the control unit of the node I may abandon the tree message B transmitted from the node G after the reply (reply).
  • Step 107 the control unit of the node I or the control unit of the node G disconnects the connection between the node I and the node G. Thereby, the movement of the node I is completed.
  • the moving node holds the tree message B after the reply (reply) in the queue as compared with the method in which each node holds the message to be distributed as described above. Just do it. Therefore, according to the method for moving a node according to the present embodiment, it is possible to save resources as compared to the method in which each node holds a message to be distributed as described above. Such an effect of resource saving increases as an information processing system in which a large number of tree messages flow. Therefore, in a database system that can flow a large amount of tree messages as disclosed in Patent Document 1, the method of moving this node is an important technique.
  • the tree message held in the queue of the moving node and the tree message distributed from the parent node before the movement are reliably reconstructed. It can be carried out. Therefore, according to the method for moving a node according to the present embodiment, the node can be moved reliably without causing gambling in the movement of the node. Compared with the system in which the initialization process for compensating for the lost message described above is performed, the information processing system 1 that implements the method for moving the node eliminates the need for the processing process. Becomes simple.
  • the operation of each node starts from a reply distributed from the root node. That is, in this node moving method, it is possible to reconstruct the tree structure without distributing information other than a reply.
  • FIG. 5 illustrates a state after the node I has moved in the information processing system 1 according to the present embodiment.
  • FIG. 5 illustrates a state in which the parent node of the node I is changed from the node G to the node C by the node movement process illustrated in FIGS. 3 and 4.
  • the tree message is delivered as usual.
  • the tree message is processed as usual as in the other nodes.
  • the control unit of the node I processes the tree message received from the node C without holding it in the queue. That is, the control unit of the node I stops the operation of holding the tree message received from the node C in the queue, and processes the tree message as usual.
  • control unit of the node I may release the secured storage area of the queue by discarding the queue after the reconstruction of the tree message in step 106 is completed. Further, the control unit of the node I may maintain the reserved queue storage area without discarding the queue, and use the queue storage area when moving next time. Handling of the storage area of the queue that is no longer used is appropriately selected according to the embodiment.
  • FIG. 4 shows an example in which a reply (reply) to a movement request is distributed to all nodes included in the information processing system 1.
  • the reply (reply) includes information indicating the moving node.
  • the parent-child relationship of the node changes in the moving node, the parent node of the movement destination, and the parent node before the movement.
  • each node holds adjacent node information in order to grasp its own parent node and child node, the adjacent node in the moving node, the moving parent node, and the moving parent node Node information is updated.
  • the destination parent node is a node in which the moving node indicated by the information included in the received reply (reply) has formed a connection in step 101.
  • the received response (reply) is recognized as the response (reply) involved.
  • the control unit of the parent node of the movement destination updates the adjacent node information held so as to add the moving node indicated by the information to its child node.
  • control unit of the parent node before moving retains the moving node to be deleted from the child node when the moving node indicated by the information included in the reply (reply) is its own child node. Update adjacent node information. Then, the control unit of the moving node updates the held adjacent node information so that its own parent node becomes the destination parent node. Thereby, each node can keep track of at least its own parent node and child node.
  • Each node may hold tree information in order to grasp the entire tree structure of the information processing system 1.
  • information indicating the node that moves to (reply) in response to the movement request information indicating the parent node to which the moving node is moved is included, and all the nodes included in the information processing system 1 include By distributing the reply (reply), each node can keep track of the tree structure of the information processing system 1 even after the movement of the node occurs.
  • the control unit of each node grasps the moving node and the moving destination parent node based on the information included in the received reply (reply). And the control part of each node updates the tree information to hold
  • the control unit of each node updates the tree information held by itself so as to show the tree structure shown in FIG. 5 from the tree structure shown in FIG. Thereby, each node can keep track of the entire tree structure of the information processing system 1.
  • FIG. 4 shows an example in which the reply (reply) is distributed to all nodes included in the information processing system 1.
  • the reply may not necessarily be distributed to all nodes included in the information processing system 1.
  • the reply may not be distributed to nodes other than the node included in the route from the root node to the moving node.
  • the reply may not be distributed to the nodes B, D, F, and H.
  • a node A that is a root node of the information processing system 1 holds tree information for grasping the entire tree structure of the information processing system 1 in a RAM or a storage device included in the control unit.
  • the node A distributes the response (reply) by adding route information indicating a route to which the response (reply) is distributed to the response (reply) to the movement request from the moving node.
  • the node A adds route information indicating that the response (reply) is distributed in the order of the nodes C, E, G, and I to the response (reply).
  • the nodes C, E, and G determine the delivery destination of the reply by referring to the route information.
  • the reply (reply) is distributed to a node included in the route from the root node to the moving node, and the reply (reply) is transmitted to a node other than the node included in the route from the root node to the moving node. Can be prevented from being delivered.
  • FIG. 6 illustrates a node replacement procedure according to this embodiment.
  • the node By using the node movement method described above, the node can be replaced.
  • the node to be replaced is node E.
  • An alternative node that replaces node E is node I, which is a leaf node. That is, FIG. 6 illustrates a procedure for replacing node E with node I in the tree structure shown in FIG.
  • description of the node movement method described above will be omitted, and the node replacement procedure will be described.
  • step 1 the node I moves so that the parent node to which the node I is moved becomes the node C that is the parent node of the node E by the above-described node moving method.
  • the node E has child nodes (nodes F and G). Therefore, the process according to steps 2 and 3 is executed as the movement process of the child node. If there is no child node in node E, the moving process of the child node is omitted, and the process according to step 4 is executed.
  • step 2 the node G, which is a child node of the node E, moves so that its own parent node becomes the node I by the above-described node movement method.
  • step 3 the node F, which is a child node of the node E, moves so that its parent node becomes the node I by the above-described node movement method.
  • the tree message reconstructed by the node G is delivered to the node H which is a child node of the node G. This ensures the consistency of the tree message at the node H.
  • steps 2 and 3 are processed in parallel.
  • steps 2 and 3 may be processed in order.
  • the node F may move after the node G moves, or the node G may move after the node F moves. That is, the present embodiment is not limited by the order in which the child nodes of the node E are moved.
  • step 4 the connection between the node E and the node C is disconnected.
  • node I is replaced with node E in the tree structure, and nodes F and G that were child nodes of node E are child nodes of node I.
  • the information processing system 1 can leave the node E from the tree structure by cutting the connection between the node E and the node C.
  • Such node replacement is utilized when, for example, the administrator of the information processing system 1 wants to check a node, and when the node to be checked is withdrawn from the tree structure.
  • each step described above may be started manually or automatically.
  • the process of each step may be started by an administrator operating each node with a client PC (not shown) for managing the information processing system 1.
  • a reply distributed from the node A may be used as a trigger for each step.
  • the following method is mentioned as an example.
  • the node E that is the node to be replaced transmits a replacement request to the node A that is the root node.
  • the node E transmits a replacement request to the node A by the same method as the movement request described above.
  • the replacement request may be referred to as an exit request in consideration of the point that the node E exits from the tree structure in step 4.
  • the node E may determine an alternative node. If node A knows the entire tree structure, node A may determine an alternative node. Further, an alternative node may be determined according to an administrator's designation. As the alternative node, any node included in the system may be selected. For example, a leaf node that has little influence on the system even when moved is selected.
  • the present embodiment is not limited to the method for determining an alternative node. The method for determining an alternative node is appropriately selected according to the embodiment. Note that the following method may be used as a method for the node E to select an alternative node.
  • control unit of the node E distributes a search request for searching for a leaf node included in the system according to a tree structure.
  • the search request may be distributed to nodes below the node E, or may be distributed from the root node (node A) as a response to the request from the node E, similarly to the response (reply) to the movement request. .
  • control unit of each node grasps its own parent node and child node based on at least adjacent node information. Therefore, the control unit of each node grasps whether or not it is a leaf node based on whether or not there is a child node by referring to information on the tree structure held by itself. Can do.
  • the control unit of each node knows whether or not it is a leaf node.
  • the control unit of the node that is not the leaf node distributes the received search request to its child node.
  • the control unit of the leaf node sends a response to the search request to the node E.
  • the control unit of node E can grasp the leaf node included in the system by receiving a response to the search request.
  • the node E can grasp one or a plurality of leaf nodes existing under its own (in the example of FIG. 6, the nodes F, H, and , I).
  • the node E can grasp all the leaf nodes included in the system (in the example of FIG. Nodes B, D, F, H, and I).
  • the control unit of the node E determines an alternative node according to a predetermined rule from among the leaf nodes that have responded.
  • the predetermined rule for determining an alternative node from among leaf nodes may be any rule, and may be selected as appropriate according to the embodiment.
  • the alternative node may be selected by the node E.
  • the root node distributes a reply to the replacement request according to the tree structure.
  • a response (reply) to the replacement request is referred to as a replacement reply.
  • a response (reply) to a movement request is referred to as a movement reply.
  • the replacement reply may be referred to as an exit reply.
  • the alternative node (node I) starts moving based on the node moving method described above. That is, the alternative node (node I) starts moving the node with the replacement reply as a trigger.
  • the control unit of the root node delivers a replacement reply including information indicating the node to be replaced and information indicating the alternative node.
  • the replacement node control unit recognizes that the replacement reply is the replacement reply that it is involved in and knows which node the replacement target node is. To do.
  • the control unit of the alternative node when holding the tree information, can identify the parent node of the node to be replaced by referring to the information included in the replacement reply and the tree information. In this case, the control unit of the alternative node starts moving the node such that the parent node of the node to be replaced that can be identified based on the information held by the node is the parent node of the moving destination by the above-described node moving method. To do.
  • control unit of the alternative node cannot identify the parent node of the node to be replaced with the information held by itself, such as when it only holds the adjacent node information.
  • control unit of the replacement node may grasp the parent node of the replacement target node by inquiring of the replacement target node, for example.
  • destination information indicating the parent node of the node to be replaced may be included in the replacement reply. That is, the control unit of the root node (node A) may distribute the replacement reply including the destination information according to the tree structure. Then, the control unit of the alternative node may grasp the parent node of the node to be replaced by referring to the movement destination information included in the replacement reply.
  • the control unit of the root node (node A) refers to the tree information.
  • the parent node of the node to be replaced can be specified. That is, the control unit of the root node (node A) can identify the node indicated by the destination information by referring to the tree information. Therefore, in this case, the control unit of the root node (node A) can include movement destination information indicating the parent node of the node to be replaced in the replacement reply.
  • control unit of the replacement target node (node E) may transmit parent node information indicating its parent node to the root node (node A) together with the replacement request.
  • the control unit of the root node (node A) that has received the parent node information includes the received parent node information as the movement destination information in the replacement reply. Thereby, the destination information indicating the parent node of the node to be replaced can be included in the replacement reply.
  • the control unit of the alternative node starts to move the node such that the parent node of the replacement target node grasped in this way becomes the destination parent node.
  • the node I starts moving the node such that the node C, which is the parent node of the node E, becomes the moving destination parent node (step 1).
  • the child node of the node to be replaced starts moving by receiving the movement reply distributed when the alternative node (node I) moves. That is, the child node of the node to be replaced (node E) starts moving with the movement reply distributed when the alternative node (node I) moves as a trigger.
  • the node to be replaced has a plurality of child nodes (nodes G and F).
  • nodes G and F the plurality of child nodes start moving in parallel.
  • the multiple child nodes are not related to each other to deliver a tree message. For this reason, even if each of them starts moving in parallel, the arrival order of the tree messages received by each of them does not deteriorate. Therefore, in this embodiment, when a plurality of child nodes exist in the node to be replaced, the plurality of child nodes start moving in parallel.
  • control unit of the child node of the node to be replaced refers to the information contained in the received replacement reply to grasp which node is the replacement node and also to its own parent. Recognize that the node is the node to be replaced.
  • the control unit of the child node of the node to be replaced waits until the movement reply distributed upon the movement of the grasped alternative node is distributed.
  • the movement reply includes information indicating the node to be moved as described above. Therefore, the control unit of the child node of the node to be replaced identifies whether or not the received movement reply is the movement reply that was distributed during the movement of the alternative node by referring to the information included in the movement reply. can do.
  • the control unit of the child node of the replacement target node receives the movement reply distributed during the movement of the alternative node
  • the control unit starts moving the node so that the alternative node becomes the parent node of the movement destination.
  • the nodes G and F start to move the nodes in parallel so that the node I becomes the destination parent node (steps 2 and 3).
  • control unit of the node to be replaced disconnects the connection (connection) with its parent node when the connection (connection) with its child node is disconnected, and exits from the tree structure.
  • step 107 the connection between the moving node and the parent node before the movement is disconnected.
  • the moving node or the parent node before the movement disconnects the connection. That is, when the node to be replaced or the child node of the node to be replaced moves the child node of the node to be replaced, the connection (connection) between the node to be replaced and the child node of the node to be replaced Disconnect.
  • the control unit of the node to be replaced disconnects its connection with its parent node after disconnecting its connection with its child node, and exits from the tree structure.
  • the node E cuts off the connection with the node C and exits from the tree structure (step 4). .
  • the plurality of child nodes may move the nodes in order. For example, when a plurality of child nodes exist in the node to be replaced (node E), at least one child node of the plurality of child nodes receives a movement reply distributed when the node I moves. Then start moving. And the 2nd child node starts a movement by receiving the movement reply delivered at the time of the movement of the 1st child node among the said some child nodes. That is, the second child node starts moving based on the node moving method described above, triggered by the movement reply distributed when the first child node moves.
  • the node F may start the movement by receiving the movement reply distributed in the movement of the node I (step 2). Then, the node G may start the movement by receiving the movement reply distributed when the node F moves (step 3).
  • the node F corresponds to the first child node
  • the node G corresponds to the second child node.
  • the movement may be started when the node G receives the movement reply distributed when the node I moves. Then, the node F may start the movement by receiving the movement reply distributed when the node G moves. That is, the order in which the node G and the node F move may be switched. In this case, the node G corresponds to the first child node, and the node F corresponds to the second child node.
  • the movement order of the plurality of child nodes is appropriately determined according to the embodiment. For example, when a number is given to each node, the movement order of the plurality of child nodes may be determined based on the number.
  • each of the plurality of child nodes included in the replacement target node includes the information about the tree structure held by itself, and grasps which node the child node included in the replacement target node is. .
  • the plurality of child nodes of the node to be replaced knows the number assigned to each. Thus, each time a plurality of child nodes of the node to be replaced receives a movement reply, each of the plurality of child nodes determines whether or not it is the turn to move based on such information.

Abstract

ツリー構造内において大量のメッセージが送信されるシステムであっても、当該システムの整合性を損なうことなく確実にノードの移動を可能にする技術を提供する。ツリー構造内において、移動するノードが移動先の親ノートとの間で接続を形成し、移動するノードが根ノードに移動リクエストを送信し、根ノードがツリー構造に従って当該移動リクエストに対する応答を配信する。移動先の親ノードは、当該応答を受信すると、当該応答よりも後のメッセージを形成された接続を経由して移動するノードに送信する。移動するノードは、形成された接続を経由して受信する応答よりも後のメッセージをキューに保持する。そして、移動するノードは、ツリー構造に従って配信された応答を受信すると、移動前の親ノードから受信した当該応答よりも前のメッセージとキューに保持された当該応答よりも後のメッセージとにより、配信されたメッセージの再構築を行う。

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.  複数の情報処理装置がそれぞれノードとしてツリー構造で接続され、該ツリー構造に従ってメッセージが配信される情報処理システムに、
     前記ツリー構造における葉ノードを置き換え対象のノードに置き換わる代替ノードとして、前記置き換え対象のノードを前記代替ノードで置き換えるため、前記ツリー構造上の位置に係るノードの移動処理によって、前記代替ノードの移動先の親ノードが前記置き換え対象のノードの親ノードとなるように、前記代替ノードを移動させるステップと、
     前記置き換え対象のノードが子ノードを有する場合、前記ノードの移動処理によって、前記子ノードの移動先の親ノードが前記代替ノードとなるように、前記子ノードを移動させるステップと、
    を実行させるためのプログラムであって、
     前記ノードの移動処理は、
     移動するノードが、移動によって前記移動するノードの親ノードとなる移動先の親ノードと接続を形成するステップと、
     前記移動するノードが、前記ツリー構造における根ノードに移動リクエストを送信するステップと、
     前記根ノードが、前記移動リクエストに対する応答を、前記ツリー構造に従って配信するステップと、
     前記移動先の親ノードが、前記応答を受信すると、形成された接続を経由して前記移動するノードに前記応答よりも後のメッセージを送信するステップと、
     前記移動するノードが、形成された接続を経由して前記移動先の親ノードから受信するメッセージをキューに保持するステップと、
     前記移動するノードが、前記ツリー構造に従って配信された前記応答を受信すると、前記移動するノードの移動前の親ノードから受信した前記応答よりも前のメッセージと前記キューに保持された前記応答よりも後のメッセージとにより、配信されたメッセージを再構築するステップと、
     前記移動するノード又は前記移動前の親ノードが、前記移動するノードと前記移動前の親ノードとの接続を切断するステップと、
    を含む、
    プログラム。
PCT/JP2012/067473 2012-07-09 2012-07-09 ツリー構造の管理方法、情報処理システム、及び、プログラム WO2014010014A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP12881107.2A EP2871578B1 (en) 2012-07-09 2012-07-09 Method for managing tree structure, information processing system, and program
JP2014524509A JP5960820B2 (ja) 2012-07-09 2012-07-09 ツリー構造の管理方法、情報処理システム、及び、プログラム
PCT/JP2012/067473 WO2014010014A1 (ja) 2012-07-09 2012-07-09 ツリー構造の管理方法、情報処理システム、及び、プログラム
US14/592,424 US9571299B2 (en) 2012-07-09 2015-01-08 Method for managing tree structure, information processing system, and medium

Applications Claiming Priority (1)

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

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/592,424 Continuation US9571299B2 (en) 2012-07-09 2015-01-08 Method for managing tree structure, information processing system, and medium

Publications (1)

Publication Number Publication Date
WO2014010014A1 true WO2014010014A1 (ja) 2014-01-16

Family

ID=49915517

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/067473 WO2014010014A1 (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控股有限责任公司 数据备份和恢复的方法、电子设备和计算机可读存储介质
EP4049383A1 (en) * 2019-10-25 2022-08-31 European Space Agency Aggregated communication network
CN113708961B (zh) * 2021-08-20 2022-09-16 珠海格力电器股份有限公司 迁移设备的方法、装置、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028594A (ja) * 1999-07-14 2001-01-30 Nippon Telegr & Teleph Corp <Ntt> データ複製方法およびデータ複製プログラムを記録した記録媒体
JP2007531155A (ja) * 2004-03-31 2007-11-01 マイクロソフト コーポレーション データベースバックアップの整合性チェックのためのシステムおよび方法
WO2010106991A1 (ja) * 2009-03-19 2010-09-23 株式会社ココリンク データの複製管理方法及びシステム
JP4951137B2 (ja) 2010-10-26 2012-06-13 株式会社Murakumo データベースの管理方法

Family Cites Families (4)

* 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
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
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028594A (ja) * 1999-07-14 2001-01-30 Nippon Telegr & Teleph Corp <Ntt> データ複製方法およびデータ複製プログラムを記録した記録媒体
JP2007531155A (ja) * 2004-03-31 2007-11-01 マイクロソフト コーポレーション データベースバックアップの整合性チェックのためのシステムおよび方法
WO2010106991A1 (ja) * 2009-03-19 2010-09-23 株式会社ココリンク データの複製管理方法及びシステム
JP4951137B2 (ja) 2010-10-26 2012-06-13 株式会社Murakumo データベースの管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2871578A4

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5960820B2 (ja) ツリー構造の管理方法、情報処理システム、及び、プログラム
CN108270732B (zh) 一种流媒体处理方法及系统
US8838703B2 (en) Method and system for message processing
US20140089619A1 (en) Object replication framework for a distributed computing environment
EP3063925B1 (en) Synchronizing event history for multiple clients
CN111600936B (zh) 一种适用于泛在电力物联网边缘终端的基于多容器的非对称处理系统
CN104092719B (zh) 文件传输方法、装置及分布式集群文件系统
CN102833337A (zh) 一种ftp文件上传、下载方法及装置
CN104503845A (zh) 一种任务分发方法和系统
CN111787079B (zh) 基于通信群组的通信方法、装置、服务器、系统及介质
WO2012060276A1 (ja) アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
US10972296B2 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
JP2013097548A (ja) 情報処理システム、情報処理装置、クライアント端末、情報処理方法、及びプログラム
CN106059936B (zh) 云系统组播文件的方法及装置
CN112202877B (zh) 网关联动方法、网关、云服务器及用户终端
CN110602244A (zh) 分布式存储系统消息交互方法、节点及分布式存储系统
CN100505662C (zh) 创建点对点数据通道的方法
CN111935242B (zh) 数据传输方法、装置、服务器以及存储介质
CN116319732A (zh) 一种基于RabbitMQ的消息队列集中配置管理系统及方法
CN102984174A (zh) 一种发布订阅系统中可靠性保障方法及系统
JP2016005275A (ja) 相互接続ネットワークを管理する方法およびシステム
EP2533499B1 (en) Method and system for service message transmission based on matching rule
JP5509564B2 (ja) メッセージ送信方法及びプログラム
CN110213359A (zh) 一种基于d2d的车联网组网数据推送系统和方法
CN106357728B (zh) 信息处理方法、系统及终端

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12881107

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014524509

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2012881107

Country of ref document: EP