Group communication system with flexible member model
First Claim
1. A method for distributing messages among a group of member computing nodes, which are mutually-linked in a distributed computing system and take part in a distributed software application, the method comprising conveying a sequence of messages to all of the member nodes in the group in accordance with a communication protocol such that the messages are delivered in a uniform order to all of the member nodes, while on at least one of the member nodes there is no process involved in running the distributed software application for at least some time while the distributed software application is running on the group of member nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
A group communication system (GCS), for use within a group of clustered computing nodes, provides a flexible group membership model. Flexible group members are defined generally as physical computing entities (such as computing nodes or other devices) or logical computing entities that take part in a distributed application. Such logical entities may include substantially any combination of processes, threads and callback functions. Logical entities that are members in the group may also be objects, such as files, that at least at some times during their existence have no active processes or threads. A single member may include multiple simultaneous processes.
79 Citations
62 Claims
- 1. A method for distributing messages among a group of member computing nodes, which are mutually-linked in a distributed computing system and take part in a distributed software application, the method comprising conveying a sequence of messages to all of the member nodes in the group in accordance with a communication protocol such that the messages are delivered in a uniform order to all of the member nodes, while on at least one of the member nodes there is no process involved in running the distributed software application for at least some time while the distributed software application is running on the group of member nodes.
- 11. A method for distributing messages among a group of member computing nodes, which are mutually-linked in a distributed computing system and take part in a distributed software application, the method comprising conveying a sequence of messages to all of the member nodes in the group in accordance with a communication protocol such that the messages are delivered in a uniform order to all of the member nodes, while on at least one of the member nodes there is a plurality of processes involved in running the distributed software application.
-
18. A method for transferring messages among a group of member computing nodes, which are mutually-linked in a distributed computing system and which communicate in accordance with a communication protocol such that a sequence of messages is delivered to all of the member nodes in the group in an order that is uniform among all of the member nodes, the method comprising:
-
assigning a unique, respective token to each of the member nodes;
receiving a message, in accordance with the protocol, sent by one of the member nodes, the message including the respective token assigned to the one of the member nodes sending the message; and
processing the message responsive to the token. - View Dependent Claims (19, 20, 21, 22, 23)
-
-
24. In a distributed computing system, in which a group of mutually-linked member computing nodes communicate in accordance with a communication protocol such that a sequence of messages is delivered to all of the member nodes in the group in an order that is uniform among all of the member nodes, a method for processing the messages received by the member computing nodes, comprising:
-
defining for each node among the member nodes at least one callback function to be invoked when messages of a predetermined type are handed to the node, such that different callback functions are defined for different nodes in the group of member nodes;
receiving a message of the predetermined type; and
invoking the callback function to process the message. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. In a distributed computing system, in which a group of mutually-linked member computing nodes take part in a distributed computing application, a method for checking whether the member computing nodes are functioning and able to participate in the distributed computing application, the method comprising:
-
defining a respective liveness function for each member node that joins the group, to determine whether the member nodes are functioning and able to participate in the application, such that at least two of the member nodes have different liveness functions; and
periodically invoking the liveness functions of the member nodes so as to determine whether any of the nodes is unable to participate in the application. - View Dependent Claims (34, 35, 36, 37, 38, 39)
-
- 40. In a distributed computing system, in which a group of mutually-linked member computing nodes take part in a distributed computing application, a method for checking whether a given node among the member computing nodes is functioning and able to participate in the distributed computing application, the method comprising periodically invoking a liveness function to be carried out by the given node so as to determine whether the given node is unable to participate in the application, without reference to execution of any process by the given node.
-
44. Distributed computing apparatus, comprising:
-
a computer network; and
a group of computer nodes, arranged to take part in a distributed software application and mutually-linked by the network in accordance with a communication protocol such that when a sequence of messages is transmitted in the group, the messages are delivered to all of the nodes in a uniform order, while on at least one of the nodes there is no process involved in running the distributed software application for at least some time while the distributed software application is running on the group of nodes. - View Dependent Claims (45, 46, 47)
-
-
48. Distributed computing apparatus, comprising:
-
a computer network; and
a group of computer nodes, arranged to take part in a distributed software application and mutually-linked by the network in accordance with a communication protocol such that when a sequence of messages is transmitted in the group, the messages are delivered to all of the nodes in a uniform order, while on at least one of the nodes there is a plurality of processes involved in running the distributed software application.
-
-
49. Distributed computing apparatus, comprising:
-
a computer network; and
a group of computer nodes, mutually-linked by the network using a group communication system such that when a sequence of messages is transmitted in the group, the messages are delivered to all of the nodes in a uniform order, wherein a unique token is respectively assigned to each of the nodes, such that whenever a message is passed from any one of the nodes to the group communication system, the message includes the respective unique token. - View Dependent Claims (50)
-
-
51. Distributed computing apparatus, comprising:
-
a computer network; and
a group of computer nodes, mutually-linked by the network in accordance with a communication protocol such that when a sequence of messages is transmitted in the group, the messages are delivered to all of the nodes in a uniform order, and such that for each of the nodes, at least one callback function is defined, to be invoked when messages of a predetermined type are handed to the nodes, such that different callback functions are defined for different nodes in the group. - View Dependent Claims (52)
-
-
53. Distributed computing apparatus, comprising:
-
a computer network; and
a group of computer nodes, mutually-linked by the network and configured to take part in a distributed computing application running on the apparatus, wherein a respective liveness function is defined for each node that joins the group to determine whether the nodes are functioning and able to participate in the application, such that at least two of the member nodes having different liveness functions, which liveness functions are invocable so as to determine whether any of the nodes is unable to participate in the application. - View Dependent Claims (54)
-
-
55. Distributed computing apparatus, comprising:
-
a computer network; and
a group of computer nodes, mutually-linked by the network and configured to take part in a distributed computing application running on the apparatus, wherein a respective liveness function is defined for at least one of the nodes for checking whether the at least one of the nodes is functioning and able to participate in the distributed computing application, and wherein the liveness function is invoked so as to determine whether the at least one of the nodes is unable to participate in the application, without reference to execution of any process by the at least one of the nodes.
-
- 56. A computer software product for distributing messages among a group of member computing nodes, which are mutually-linked in a distributed computing system and are arranged to take part in a distributed software application, the product comprising a computer-readable medium having program instructions stored therein, which instructions, when read by one of the member nodes, cause the one of the member nodes to convey a sequence of messages to all of the member nodes in the group in accordance with a communication protocol such that the messages are delivered in a uniform order to all of the member nodes, while on at least one of the member nodes there is no process involved in running the distributed software application for at least some time while the distributed software application is running on the group of member nodes.
-
58. A computer software product for distributing messages among a group of member computing nodes, which are mutually-linked in a distributed god computing system and are arranged to take part in a distributed software application, the product comprising a computer-readable medium having program instructions stored therein, which instructions, when read by one of the member nodes, cause the one of the member nodes to convey a sequence of messages to all of the member nodes in the group in accordance with a communication protocol such that the messages are delivered in a uniform order to all of the member nodes, while on at least one of the member nodes there is a plurality of processes involved in running the distributed software application.
-
59. A computer software product for transferring messages among a group of member computing nodes, which are mutually-linked in a distributed computing system and which communicate in accordance with a communication protocol such that a sequence of messages is delivered to all of the member nodes in the group in an order that is uniform among all of the member nodes, the product comprising a computer-readable medium having program instructions stored therein, which instructions, when read by the member nodes, cause the member nodes to assign respective unique tokens to the member nodes, such that messages including the respective tokens are sent by the member nodes in accordance with the protocol and are processed responsive to the tokens.
-
60. A computer software product for use in a distributed computing system in which a group of mutually-linked member computing nodes communicate in accordance with a communication protocol such that a sequence of messages is delivered to all of the member nodes in the group in an order that is uniform among all of the member nodes, the product comprising a computer-readable medium having program instructions stored therein, which instructions, when read by the member nodes, cause the member nodes to define for each of the member nodes at least one callback function, to be invoked when messages of a predetermined type are handed to the nodes, such that when a message of the predetermined type is received by one of the member nodes, the callback function is invoked to process the message, and such that different callback functions are defined for different nodes in the group.
-
61. A computer software product for use in a distributed computing system in which a group of mutually-linked member computing nodes take part in a distributed computing application, the product comprising a computer-readable medium having program instructions stored therein, which instructions, when read by the member nodes, cause the nodes to define a respective liveness function for each node that joins the group to determine whether the nodes are functioning and able to participate in the application, such that at least two of the member nodes have different liveness functions, and which further cause the member nodes to periodically invoke the liveness functions so as to determine whether any of the member nodes is unable to participate in the application.
-
62. A computer software product for use in a distributed computing system in which a group of mutually-linked member computing nodes take part in a distributed computing application, the product comprising a computer-readable medium having program instructions stored therein, which instructions, when read by the member nodes, cause the nodes to periodically invoke a liveness function to be carried out by a given one of the member nodes so as to determine whether the given one of the member nodes is functioning and able to participate in the distributed computing application,
wherein the liveness function is carried out by the given one of the member nodes without reference to execution of any process by the given one of the member nodes.
Specification