Group communication system with flexible member model

Data processing: database and file management or data structures – Database design – Data structure types

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06493716

ABSTRACT:

FIELD OF THE INVENTION
The present invention relates generally to distributed computing systems, and specifically to distributed computing applications driven by group communication systems.
BACKGROUND OF THE INVENTION
Computer clusters are widely used to enable high availability of computing resources, coupled with the possibility of horizontal growth, at reduced cost by comparison with collections of independent systems. Clustering is also useful in disaster recovery. A wide range of clustering solutions are currently available,
Distributed group communication systems (GCSs) enable applications to exchange messages within groups of clustered entities in a reliable, ordered manner. For including 390 Sysplex, RS/6000 SP, HACMP, PC Netfinity and AS/400 Cluster, all offered by IBM Corporation, as well as Tandem Himalaya, Hewlett-Packard Mission Critical Server, Compaq TruCluster, Microsoft MSCS, NCR LifeKeeper and Sun Microsystems Project Cascade. An AS/400 Cluster, for example, supports up to 128 computing nodes, connected via any Internet Protocol (IP) network. A developer of a software application can define and use groups of physical computing entities (such as computing nodes or other devices) or logical computing entities (such as files or processes) to run the application within the cluster environment. In the context of the present patent application and in the claims, such entities are also referred to as group members, and the term “entity” is used to refer interchangeably to physical and logical computing entities.
Distributed group communication systems (GCSs) enable applications to exchange messages within groups of clustered entities in a reliable, ordered manner. For example, the OS/400 operating system kernel for the above-mentioned AS/400 Cluster includes a GCS in the form of mlddleware for use by cluster applications. This GCS is described in an article by Goft et al., entitled “The AS/400 Cluster Engine: A Case Study,” presented at the International Group Communications Conference IGCC 99 (Aizu, Japan, 1999), which is incorporated herein by reference. The GCS ensures that if a message addressed to the entire group is delivered to one of the group members, the message will also be delivered to all other live and connected members of the group. In this way, the group members can act upon received messages and remain consistent with one another. Another function performed by the GCS is to verify periodically that all of the members are “alive,” i.e., functioning and able to perform their part in the distributed application. When one of the members fails a liveness check, or when members leave or join the group for some other reason, the GCS notifies the other members of the membership change.
Another well-known GCS is “Ensemble,” which was developed at Cornell University, as were its predecessors, “ISIS” and “Horus.” Ensemble is described in the “Ensemble Reference Manual,” by Hayden (Cornell University, 1997), which is incorporated herein by reference.
GCSs known in the art require that a group member be a single software process, i.e., an instance of a program actively running on a computer, although some GCSs allow the process to have multiple threads. All of the messages that a member process receives are enqueued in a predefined queue, and are later dequeued by that process and handled by handlers that the process invokes. Limiting GCS membership to single processes makes the semantics of a group member relatively intuitive. For instance, one of the key functions of a GCS is discovering failures of group members. When a group member is a process, then a simple process existence check can be made. When a group member is not necessarily a single process, the task of checking group member liveness becomes complicated. Furthermore, when a group member process sends out a message, it is easy to relate the process to the particular member. The relation becomes less clear if there are multiple processes that can send a message on behalf of the group member, especially when several group members can reside on a common node. Likewise, it is simple for the GCS to deliver a message to a group member if there is only a single process or a single inbound queue to receive the message. When the member is not a single process (or not a process at all), however, it may not be clear to whom the message should be delivered.
Ordered handling of GCS messages by group members also becomes difficult if the members are not all single processes. Message delivery to a single process is serializable, since the process deals with one message at a time. Therefore, handing messages to a process in a certain order makes it easy to ensure that the messages will be handled by the process in the same order. On the other hand, if a group member includes multiple processes, this serializability is no longer guaranteed. Messages are still handed to the group member in a certain order, but handling of the messages, if carried out by several different processes, can terminate in a different relative order.
SUMMARY OF THE INVENTION
It is an object of some aspects of the present invention to provide a group communication system (GCS) in which membership is not restricted to single processes.
It is a further object of some aspects of the present invention to provide tools for use in distributed applications that afford the application designer greater flexibility in defining application structure and group membership.
It is yet a further object of some aspects of the present invention to provide a group structure and communication protocols that enhance the performance of distributed applications.
In preferred embodiments of the present invention, a group communication system (GCS), for use within a group of clustered computing entities, provides a flexible group membership model. Flexible group members (FGMs) are defined generally as computing entities that take part in a distributed application. Such entities may include substantially any combination of processes, threads and callback functions (referred to herein as callbacks). Members may also comprise objects, such as files, that at least at some times during their existence have no active processes or threads, or they may comprise multiple simultaneous processes.
When a member joins the group, a communication protocol is established between the member and the GCS, which is not necessarily dependent on any particular process being executed by the member. The protocol defines how the GCS is to check the liveness of the particular member and how messages are to be conveyed by the GCS to and from the member, in the appropriate, ordered manner. Thus, while the framework of the protocol is fixed, the details vary from member to member and are generally determined only at the time that the member joins the group. These details may also be changed during a life cycle of group membership.
In some preferred embodiments of the present invention, the communication protocol between the GCS and each of the FGMs is based on a unique token, which is created by the GCS when the member joins the group. This token is used by processes and other components of the FGM whenever they need to communicate with the GCS. It enables the GCS to identify unambiguously the member that is sending the message, even when multiple processes are running as a single member, or when multiple members are resident on a single node, or when a member can run in different processes at different instants in time.
In these and other preferred embodiments of the present invention, each FGM has a set of callbacks, i.e., functions that are defined and called when required for performing distinct services. Such callbacks are defined to handle particular, respective types of messages handed to the FGM by the GCS. Preferably, a different callback is defined for each type of GCS message. Alternatively, specific callbacks may be defined for only some of the GCS message types, while another general callback simply passes the messages through to a process that is being executed by the member or t

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Group communication system with flexible member model does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Group communication system with flexible member model, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Group communication system with flexible member model will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2935355

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.