Group data sharing during membership change in clustered computer system
First Claim
1. A method of processing a request in a clustered computer system to organize a plurality of members into a group, the method comprising, in a local member from the plurality of members:
- (a) locally determining within the local member whether the local member is a subgroup leader for a subgroup with which the local member is associated;
(b) if so, transmitting group data on behalf of the subgroup; and
(c) detecting in the local member whether the group data for the subgroup has already been transmitted by a previous subgroup leader, wherein transmitting the group data by the local member is performed only if the group data has not already been transmitted.
1 Assignment
0 Petitions
Accused Products
Abstract
An apparatus, program product and method utilize subgroup-specific leader members to exchange group data between group members during the handling of a request to organize members into a group in a clustered computer system, e.g., when handling a membership change operation such as a merge or join. Such subgroup leaders may be determined locally within individual subgroup members, and moreover, the subgroup members may locally track the transmission status of group data for the various subgroups. Each subgroup includes one or more members that are known to store group data that is coherent among all subgroup members.
292 Citations
21 Claims
-
1. A method of processing a request in a clustered computer system to organize a plurality of members into a group, the method comprising, in a local member from the plurality of members:
-
(a) locally determining within the local member whether the local member is a subgroup leader for a subgroup with which the local member is associated;
(b) if so, transmitting group data on behalf of the subgroup; and
(c) detecting in the local member whether the group data for the subgroup has already been transmitted by a previous subgroup leader, wherein transmitting the group data by the local member is performed only if the group data has not already been transmitted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method of processing a request in a clustered computer system to organize a plurality of members into a group, the method comprising, in a local member from the plurality of members:
-
locally determining within the local member whether the local member is a subgroup leader for a subgroup with which the local member is associated;
if so, transmitting group data on behalf of the subgroup;
sending an acknowledgment message during an acknowledgment round;
waiting for receipt of an acknowledgment message from each of the plurality of members;
processing the group data after receipt of acknowledgment message from each of the plurality of members;
receiving a message identifying a failed member among the plurality of members; and
in response to receiving the message identifying the failed member, identifying the failed member, locally determining whether the local member is the subgroup leader for the subgroup subsequent to the failure of the failed member, and transmitting group data on behalf of the subgroup using the local member if the group data for the subgroup has not yet been transmitted. - View Dependent Claims (10)
-
-
11. A method of processing a request in a clustered computer system to organize a plurality of members into a group, the plurality of members partitioned into a plurality of subgroups, the method comprising:
-
transmitting group data on behalf of each subgroup; and
locally tracking within each member whether the group data for the subgroup associated with such member has been transmitted;
locally determining within each member whether the member is a subgroup leader for the subgroup with which the member is associated; and
if the member is a subgroup leader and the group data for the subgroup associated with the member has not been transmitted, transmitting with the member the group data on behalf of the subgroup. - View Dependent Claims (12)
-
-
13. A method of processing a request in a clustered computer system to organize a plurality of members into a group, the plurality of members partitioned into a plurality of subgroups, the method comprising, for each subgroup:
-
(a) determining a subgroup leader for such subgroup via a local determination made within each active member associated with such subgroup;
(b) determining within the subgroup leader for such subgroup whether group data has already been transmitted on behalf of such subgroup;
(c) if group data has not already been transmitted on behalf of such subgroup, transmitting the group data using the subgroup leader;
(d) performing an acknowledgment round to detect any failed members; and
(e) repeating the determination of the subgroup leader for such subgroup, the determination of whether group data has already been transmitted, the transmission of the group data if no such group data has been transmitted, and the performance of the acknowledgment round until no failed members are detected in response to a last performed acknowledgment round.
-
-
14. An apparatus, comprising:
-
(a) a memory; and
(b) a program resident in the memory, the program configured to process a request in a clustered computer system to organize a plurality of members into a group by locally determining for a local member among the plurality of members whether the local member is a subgroup leader for a subgroup with which the local member is associated, and if so, transmitting group data on behalf of the subgroup, wherein the program is further configured to detect whether the group data for the subgroup has already been transmitted by a previous subgroup leader, and wherein the program is confirmed to transmit the data only if the group data has not already been transmitted. - View Dependent Claims (15, 16, 17)
-
-
18. An apparatus, comprising:
-
(a) a memory; and
(b) a program resident in the memory, the program configured to process a request in a clustered computer system to organize a plurality of members into a group by locally determining for a local member among the plurality of members whether the local member is a subgroup leader for a subgroup with which the local member is associated, and if so, transmitting group data on behalf of the subgroup, wherein the program is further configured to a send an acknowledgment message during an acknowledgment round, wait for receipt of an acknowledgment message from each of the plurality of members, and process the group data after receipt of acknowledgment messages from each of the plurality of members, and wherein the program is further configured to receive a message identifying a failed member among the plurality of members, and in response to receiving the message identifying the failed member, identify the failed member, locally determine whether the local member is the subgroup leader for the subgroup subsequent to the failure of the failed member, and transmit group data on behalf of the subgroup if the group data for the subgroup has not yet been transmitted.
-
-
19. A clustered computer system, comprising:
-
(a) a plurality of nodes coupled to one another over a network;
(b) a plurality of member jobs defining a group and configured to be executed by at least one of the plurality of nodes; and
(c) a program configured to be executed by at least one of the plurality of nodes to process a request received by a member job from the plurality of member jobs to add another member job to the group by locally determining for the member job whether the member job is a subgroup leader for a subgroup with which the member job is associated, and if so, transmitting group data on behalf of the subgroup, wherein the program is further configured to detect whether the group data for the subgroup has already been transmitted by a previous subgroup leader, and wherein the program is configured to transmit the group data only if the group data has not already been transmitted.
-
-
20. A program product, comprising:
-
(a) a program configured to process a request in a clustered computer system to organize a plurality of members into a group by locally determining for a local member among the plurality of members whether the local member is a subgroup leader for a subgroup with which the local member is associated, and if so, transmitting group data on behalf of the subgroup, wherein the program is further configured to detect whether the group data for the subgroup has already been transmitted by a previous subgroup leader, and wherein the program is configured to transmit the group data only if the group data has not already been transmitted; and
(b) a signal bearing medium bearing the program. - View Dependent Claims (21)
-
Specification