Claims
- 1. A method for performing event notification in a distributed computing system, comprising:
receiving an event that was generated at a node in the distributed computing system, wherein the event includes a set of name/value pairs associated with the event; comparing the event against a set of client event registrations to determine a set of clients to be notified of the event, wherein each client event registration identifies a client and a target set of name/value pairs; wherein the client is to be notified of the event if the target set of name/value pairs matches a subset of the set of name/value pairs associated with the event; and sending a notification of the event to the set of clients to be notified of the event.
- 2. The method of claim 1, wherein comparing the event against the set of client event registrations involves performing a subset determination operation to identify which client event registrations match a subset of the set of name/value pairs associated with the event.
- 3. The method of claim 2, wherein for each name/value pair associated with the event, performing the subset determination operation involves:
looking up an entry in a hash table for the name/value pair, wherein the entry identifies which client event registrations contain matching name/value pairs; incrementing a counter for each client event registration that contains a matching name/value pair; and if the counter for a client event registration equals the number of name/value pairs in the client event registration, adding the associated client to the set of clients to be notified of the event.
- 4. The method of claim 3, wherein prior to receiving the event, the method further comprises initializing the hash table, which involves:
for each name/value pair in each client event registration, creating a hash table entry for the name/value pair, if a hash table entry for the name/value pair does not exist; and for each name/value pair in each client event registration, updating the hash table entry to point to the counter for the associated client event registration; whereby a subsequent hash table lookup for an event can increment counters for client event registrations that contain matching name/value pairs.
- 5. The method of claim 1, wherein comparing the event against the set of client event registrations additionally involves comparing a class and a subclass associated with the event against a class and a subclass associated with each client event registration.
- 6. The method of claim 1, wherein clients can include:
applications or application components running within the distributed computing system; and applications or application components running outside of the distributed computing system.
- 7. The method of claim 1, wherein the event can include:
a node joining a cluster in the distributed computing system; a node leaving the cluster in the distributed computing system; a state change related to an application or an application component running within the distributed computing system; and a state change for a group of related applications running within the distributed computing system.
- 8. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for performing event notification in a distributed computing system, the method comprising:
receiving an event that was generated at a node in the distributed computing system, wherein the event includes a set of name/value pairs associated with the event; comparing the event against a set of client event registrations to determine a set of clients to be notified of the event, wherein each client event registration identifies a client and a target set of name/value pairs; wherein the client is to be notified of the event if the target set of name/value pairs matches a subset of the set of name/value pairs associated with the event; and sending a notification of the event to the set of clients to be notified of the event.
- 9. The computer-readable storage medium of claim 8, wherein comparing the event against the set of client event registrations involves performing a subset determination operation to identify which client event registrations match a subset of the set of name/value pairs associated with the event.
- 10. The computer-readable storage medium of claim 9, wherein for each name/value pair associated with the event, performing the subset determination operation involves:
looking up an entry in a hash table for the name/value pair, wherein the entry identifies which client event registrations contain matching name/value pairs; incrementing a counter for each client event registration that contains a matching name/value pair; and if the counter for a client event registration equals the number of name/value pairs in the client event registration, adding the associated client to the set of clients to be notified of the event.
- 11. The computer-readable storage medium of claim 10, wherein prior to receiving the event, the method further comprises initializing the hash table, which involves:
for each name/value pair in each client event registration, creating a hash table entry for the name/value pair, if a hash table entry for the name/value pair does not exist; and for each name/value pair in each client event registration, updating the hash table entry to point to the counter for the associated client event registration; whereby a subsequent hash table lookup for an event can increment counters for client event registrations that contain matching name/value pairs.
- 12. The computer-readable storage medium of claim 8, wherein comparing the event against the set of client event registrations additionally involves comparing a class and a subclass associated with the event against a class and a subclass associated with each client event registration.
- 13. The computer-readable storage medium of claim 8, wherein clients can include:
applications or application components running within the distributed computing system; and applications or application components running outside of the distributed computing system.
- 14. The computer-readable storage medium of claim 8, wherein the event can include:
a node joining a cluster in the distributed computing system; a node leaving the cluster in the distributed computing system; a state change related to an application or an application component running within the distributed computing system; and a state change for a group of related applications running within the distributed computing system.
- 15. An apparatus that performs event notification in a distributed computing system, comprising:
a receiving mechanism configured to receive an event that was generated at a node in the distributed computing system, wherein the event includes a set of name/value pairs associated with the event; a comparison mechanism configured to compare the event against a set of client event registrations to determine a set of clients to be notified of the event, wherein each client event registration identifies a client and a target set of name/value pairs; wherein the client is to be notified of the event if the target set of name/value pairs matches a subset of the set of name/value pairs associated with the event; and a notification mechanism configured to send a notification of the event to the set of clients to be notified of the event.
- 16. The apparatus of claim 15, wherein the comparison mechanism is configured to perform a subset determination operation to identify which client event registrations match a subset of the set of name/value pairs associated with the event.
- 17. The apparatus of claim 16, wherein for each name/value pair associated with the event, the comparison mechanism is configured to:
look up an entry in a hash table for the name/value pair, wherein the entry identifies which client event registrations contain matching name/value pairs; increment a counter for each client event registration that contains a matching name/value pair; and if the counter for a client event registration equals the number of name/value pairs in the client event registration, to add the associated client to the set of clients to be notified of the event.
- 18. The apparatus of claim 17, further comprising:
a hash table initialization mechanism; wherein for each name/value pair in each client event registration, the hash table initialization mechanism is configured to create a hash table entry for the name/value pair, if a hash table entry for the name/value pair does not exist; and wherein for each name/value pair in each client event registration, the hash table initialization mechanism is configured to update the hash table entry to point to the counter for the associated client event registration; whereby a subsequent hash table lookup for an event can increment counters for client event registrations that contain matching name/value pairs.
- 19. The apparatus of claim 15, wherein the comparison mechanism is additionally configured to compare a class and a subclass associated with the event against a class and a subclass associated with each client event registration.
- 20. The apparatus of claim 15, wherein clients can include:
applications or application components running within the distributed computing system; and applications or application components running outside of the distributed computing system.
- 21. The apparatus of claim 15, wherein the event can include:
a node joining a cluster in the distributed computing system; a node leaving the cluster in the distributed computing system; a state change related to an application or an application component running within the distributed computing system; and a state change for a group of related applications running within the distributed computing system.
RELATED APPLICATION
[0001] This application is a continuation-in-part of a pending U.S. non-provisional patent application by inventors Ashutosh Tripathi, Andrew L. Hisgen and Nicholas A. Solter, entitled, “Method and Apparatus for Providing a Highly Available Distributed Event Notification Mechanism,” having Ser. No. ______ TO BE ASSIGNED, and filing date ______ TO BE ASSIGNED (Attorney Docket No. SUN-P8198-PIP). This application hereby claims priority under 35 U.S.C. §120 to the above-listed patent application.
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10285176 |
Oct 2002 |
US |
Child |
10304347 |
Nov 2002 |
US |