IP Library Granted Patent US 7,111,305
Granted Patent B2
US 7,111,305 · App. 10/304,347 · Granted Sep 19, 2006

Facilitating event notification through use of an inverse mapping structure for subset determination

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,111,305
App. No.
10/304,347
Granted
Sep 19, 2006
Kind
B2
Abstract

One embodiment of the present invention provides a system that performs event notification in a distributed computing system. During operation, the system receives 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. Next, the system compares 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. Finally, the system sends a notification of the event to the set of clients to be notified of the event.

Claims (70)

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:

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; and

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.

2. The method of claim 1 , 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.

3. 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.

4. 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.

5. 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.

6. 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;

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; and

wherein for each name/value pair associated with the event, performing the subset determination operation involves:

looking LIP 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.

7. The computer-readable storage medium of claim 6 , 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.

8. The computer-readable storage medium of claim 6 , 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.

9. The computer-readable storage medium of claim 6 , 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.

10. The computer-readable storage medium of claim 6 , 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.

11. 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;

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; and

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.

12. The apparatus of claim 11 , 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.

13. The apparatus of claim 11 , 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.

14. The apparatus of claim 11 , 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.

15. The apparatus of claim 11 , 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.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037302/0616 →