The present invention relates to distributed computing in general, and more particularly to distributed group membership services therefor.
Groups of distributed computers and/or computer processes, that cooperate to perform a task or set of tasks are often managed using a distributed group membership system (GMS). The GMS typically maintains an eligibility list indicating which computers or processes may join the group. GMSs typically maintain their eligibility lists as either a fixed list or as a dynamic list. GMSs that maintain dynamic eligibility lists accommodate changes to the membership more easily than GMSs that maintain fixed eligibility lists, while GMSs that maintain fixed eligibility lists allow for quorums to be more easily determined and better support algorithms which are based on how many of the potential members are active within the group.
The present invention discloses a system and method for managing eligibility lists in a distributed group membership system. Fixed eligibility list management techniques are adapted to allow dynamic changes to the eligibility list which are then propagated to all members in the view, as well as to new members who join the view.
In one aspect of the present invention a method is provided for eligibility list management in a distributed group membership system, the method including receiving an eligibility list change request with respect to an eligibility list of a group of computing elements, removing from a view of the group any active members in the group who are to be removed from the eligibility list as indicated by the eligibility list change request, preventing any of the members that are removed from the view from rejoining a view until the eligibility list change is applied to the eligibility list, applying the eligibility list change to the eligibility list, and establishing a new view for any active members in the group who are on the changed eligibility list.
In another aspect of the present invention the receiving step includes receiving where the eligibility list change request is a request to add a member to the eligibility list.
In another aspect of the present invention the receiving step includes receiving where the eligibility list change request is a request to remove a member from the eligibility list.
In another aspect of the present invention the removing step includes removing from a plurality of copies of the view.
In another aspect of the present invention the applying step includes applying to a plurality of copies of the eligibility list.
In another aspect of the present invention the method further includes relaying the eligibility list change request to a plurality of GMS agents associated with the computing elements. In another aspect of the present invention further includes receiving a connection request from any of the computing elements to join the group, initiating an unknown member connection attempt event within the group membership system if the requester is not on the eligibility list, authenticating the requestor, and initiating the eligibility list change request to add the authenticated requestor to the eligibility list.
In another aspect of the present invention a distributed group membership system with eligibility list management is provided, the system including a plurality of computing elements operative to become active members in a group of the computing elements, and a plurality of group membership system (GMS) agents, each agent being associated with one of the computing elements and operative to maintain a copy of a group eligibility list which indicates which of the computing elements may join the group receive an eligibility list change request with respect to the eligibility list, remove from a view of the group any active members in the group who are to be removed from the eligibility list as indicated by the eligibility list change request, prevent any of the members that are removed from the view from rejoining any view of the group until the eligibility list change is applied to the eligibility list, apply the eligibility list change to the eligibility list, and establish a new view for any active members in the group who are on the changed eligibility list.
In another aspect of the present invention the computing elements are operative to cooperate in a distributed fashion to perform one or more tasks as part of a cooperative mission.
In another aspect of the present invention the agents are operative to cooperate with other of the GMS agents to collectively provide a distributed GMS with distributed management regarding the membership of the computing elements in the group.
In another aspect of the present invention the group eligibility list indicates which of the computing elements may join the group view of active group members who are available to assist in carrying out the cooperative mission.
In another aspect of the present invention the agents are operative to maintains a copy of the same group view.
In another aspect of the present invention the change request is a request to add a member to the eligibility list.
In another aspect of the present invention the change request is a request to remove a member from the eligibility list.
In another aspect of the present invention the agents are operative to remove the active members from a plurality of copies of the view.
In another aspect of the present invention the agents are operative to apply the eligibility list change to a plurality of copies of the eligibility list.
In another aspect of the present invention the agents are operative to relay the eligibility list change request to the plurality of GMS agents associated with the computing elements.
In another aspect of the present invention the agents are operative to receive a connection request from any of the computing elements to join the group, initiate an unknown member connection attempt event within the group membership system if the requestor is not on the eligibility list, authenticate the requester, and initiate the eligibility list change request to add the authenticated requester to the eligibility list.
In another aspect of the present invention a computer-implemented program is provided embodied on a computer-readable medium, the computer program including a first code segment operative to receive an eligibility list change request with respect to an eligibility list of a group of computing elements, a second code segment operative to remove from a view of the group any active members in the group who are to be removed from the eligibility list as indicated by the eligibility list change request, a third code segment operative to prevent any of the members that are removed from the view from rejoining a view until the eligibility list change is applied to the eligibility list, a fourth code segment operative to apply the eligibility list change to the eligibility list, and a fifth code segment operative to establish a new view for any active members in the group who are on the changed eligibility list.
In another aspect of the present invention the receiving code segment includes receiving where the eligibility list change request is a request to add a member to the eligibility list.
In another aspect of the present invention the receiving code segment includes receiving where the eligibility list change request is a request to remove a member from the eligibility list.
In another aspect of the present invention the removing code segment includes removing from a plurality of copies of the view.
In another aspect of the present invention the applying code segment includes applying to a plurality of copies of the eligibility list.
In another aspect of the present invention further includes a sixth code segment operative to relay the eligibility list change request to a plurality of GMS agents associated with the computing elements.
In another aspect of the present invention the computer-implemented program further includes a seventh code segment operative to receiving a connection request from any of the computing elements to join the group, a eighth code segment operative to initiating an unknown member connection attempt event within the group membership system if the requestor is not on the eligibility list, a ninth code segment operative to authenticating the requester, and a tenth code segment operative to initiating the eligibility list change request to add the authenticated requestor to the eligibility list.
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Reference is now made to
Reference is now made to
Reference is now made to
Computing elements that are added to the group eligibility list may be sent a message including the current group eligibility list when they first attempt to join a group or, alternatively, after their next attempt. Where a newly added member to the group eligibility list receives a connection request from another list member before it has updated its copy of the group eligibility list, the connection request may be handled as described above as a connection request from an unknown member.
Aspects of the methods of
It is appreciated that some of the events described above may occur in a different order than that shown or in parallel.
It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.
While the methods and apparatus disclosed herein may or may not have been described with reference to specific computer hardware or software, it is appreciated that the methods and apparatus described herein may be readily implemented in computer hardware or software using conventional techniques.
While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.