US2012066694A1PendingUtilityA1

Event overflow handling by coalescing and updating previously-queued event notification

43
Assignee: JENNINGS CHERYL LPriority: Sep 10, 2010Filed: Sep 10, 2010Published: Mar 15, 2012
Est. expirySep 10, 2030(~4.2 yrs left)· nominal 20-yr term from priority
G06F 9/542G06F 2209/546
43
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An event notification system for distributed processing systems provides reduction of queue space and event processing bandwidth associated with duplicate events such as a particular event that is duplicated and results in multiple event notifications propagated for multiple consumers. When a duplicate event notification is received at an input to an event notification queue, rather than queuing the duplicate event notification, a sequence number of the event notification already in the queue is updated to indicate to the event consumer, exactly how many duplicate events have been received. The timestamp of the updated event notification may also be set to the timestamp of the most recently received duplicate event notification.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A method for event notification within a computer system processing cluster comprising a plurality of physical or virtual processing modes, the method comprising:
 receiving event notifications corresponding to events occurring on one or more of the processing nodes;   queuing the received event notifications in one or more queues for delivery to event consumers;   coalescing duplicate event notifications in a single resulting event notification, wherein the event notifications contain a event sequence number, wherein the coalescing further increments the event sequence number in the resulting event notification to indicate to a corresponding one of the event consumers the total number of original and duplicate events that have been received; and   at an event consumer, determining whether the event notifications have been duplicated one or more times by reading the event sequence number of the event notifications.   
     
     
         2 . The method of  claim 1 , wherein the queuing the event notifications queues the event notifications in multiple queues corresponding to event consumers. 
     
     
         3 . The method of  claim 1 , wherein the coalescing only coalesces sequential duplicate events. 
     
     
         4 . The method of  claim 3 , wherein the coalescing comprises:
 responsive to the receiving having received an event notification;   peeking in a corresponding queue to determine whether a most recently queued event notification is a duplicate of the received event notification;   responsive to the peeking determining that the most recently queued event notification is not a duplicate of the received event notification, queuing the event notification in the corresponding queue without altering the sequence number of the event notification; and   responsive to the peeking determining that the most recently queued event notification is a duplicate of the received event notification, incrementing the sequence number of the most recently queued event notification without queuing the received event notification in the queue.   
     
     
         5 . The method of  claim 4 , further responsive to the peeking determining that the most recently queued event notification is a duplicate of the received event notification, updating a timestamp of the most recently queued event notification. 
     
     
         6 . The method of  claim 1 , wherein the coalescing further sets a timestamp of the single resulting event notification to match the timestamp of the most recent of the duplicate event notifications. 
     
     
         7 . The method of  claim 6 , wherein the setting a timestamp is performed selectively in response to an indication that event notification timestamps should be updated. 
     
     
         8 . The method of  claim 1 , wherein the event notifications are received as callbacks to an application programming interface provided by the file system that implements at least a portion of the event notification method, and wherein the queuing is performed in response to receiving the callbacks. 
     
     
         9 . A computer system comprising a processing cluster including a plurality of physical or virtual processing modes, the computer system comprising at least one processor for executing program instructions and at least one memory coupled to the processor for executing the program instructions, wherein the program instructions are program instructions for providing event notification within the computer system, the program instructions comprising program instructions for:
 receiving event notifications corresponding to events occurring on one or more of the processing nodes;   queuing the received event notifications in one or more queues for delivery to event consumers;   coalescing duplicate event notifications in a single resulting event notification, wherein the event notifications contain a event sequence number, wherein the coalescing further increments the event sequence number in the resulting event notification to indicate to a corresponding one of the event consumers the total number of original and duplicate events that have been received; and   at an event consumer, determining whether the event notifications have been duplicated one or more times by reading the event sequence number of the event notifications.   
     
     
         10 . The computer system of  claim 9 , wherein the program instructions for queuing the event notifications queue the event notifications in multiple queues corresponding to event consumers. 
     
     
         11 . The computer system of  claim 9 , wherein the program instructions for coalescing only coalesce sequential duplicate events. 
     
     
         12 . The computer system of  claim 11 , wherein the program instructions for coalescing comprise program instructions for:
 responsive to the receiving having received an event notification;   peeking in a corresponding queue to determine whether a most recently queued event notification is a duplicate of the received event notification;   responsive to the peeking determining that the most recently queued event notification is not a duplicate of the received event notification, queuing the event notification in the corresponding queue without altering the sequence number of the event notification; and   responsive to the peeking determining that the most recently queued event notification is a duplicate of the received event notification, incrementing the sequence number of the most recently queued event notification without queuing the received event notification in the queue.   
     
     
         13 . The computer system of  claim 12 , further comprising program instructions for responsive to the peeking determining that the most recently queued event notification is a duplicate of the received event notification, updating a timestamp of the most recently queued event notification. 
     
     
         14 . The computer system of  claim 9 , wherein the program instructions for coalescing further set a timestamp of the single resulting event notification to match the timestamp of the most recent of the duplicate event notifications. 
     
     
         15 . The computer system of  claim 9 , wherein the program instructions for setting a timestamp are selectively executed in response to an indication that event notification timestamps should be updated. 
     
     
         16 . The computer system of  claim 9 , wherein the event notifications are received as callbacks to an application programming interface provided by the file system that implements at least a portion of the event notification method, and wherein the program instructions for queuing are executed in response to receiving the callbacks. 
     
     
         17 . A computer program product comprising a computer-readable storage media storing program instructions for execution within a computer system, the computer system comprising a processing cluster including a plurality of physical or virtual processing modes, wherein the program instructions are program instructions for providing event notification within the computer system, the program instructions comprising program instructions for:
 receiving event notifications corresponding to events occurring on one or more of the processing nodes;   queuing the received event notifications in one or more queues for delivery to event consumers;   coalescing duplicate event notifications in a single resulting event notification, wherein the event notifications contain a event sequence number, wherein the coalescing further increments the event sequence number in the resulting event notification to indicate to a corresponding one of the event consumers the total number of original and duplicate events that have been received; and   at an event consumer, determining whether the event notifications have been duplicated one or more times by reading the event sequence number of the event notifications.   
     
     
         18 . The computer program product of  claim 17 , wherein the program instructions for queuing the event notifications queue the event notifications in multiple queues corresponding to event consumers. 
     
     
         19 . The computer program product of  claim 17 , wherein the program instructions for coalescing only coalesce sequential duplicate events. 
     
     
         20 . The computer program product of  claim 19 , wherein the program instructions for coalescing comprise program instructions for:
 responsive to the receiving having received an event notification;   peeking in a corresponding queue to determine whether a most recently queued event notification is a duplicate of the received event notification;   responsive to the peeking determining that the most recently queued event notification is not a duplicate of the received event notification, queuing the event notification in the corresponding queue without altering the sequence number of the event notification; and   responsive to the peeking determining that the most recently queued event notification is a duplicate of the received event notification, incrementing the sequence number of the most recently queued event notification without queuing the received event notification in the queue.   
     
     
         21 . The computer program product of  claim 20 , further comprising program instructions for responsive to the peeking determining that the most recently queued event notification is a duplicate of the received event notification, updating a timestamp of the most recently queued event notification. 
     
     
         22 . The computer program product of  claim 17 , wherein the program instructions for setting a timestamp are selectively executed in response to an indication that event notification timestamps should be updated. 
     
     
         23 . The computer program product of  claim 17 , wherein the event notifications are received as callbacks to an application programming interface provided by the file system that implements at least a portion of the event notification method, and wherein the program instructions for queuing are executed in response to receiving the callbacks. 
     
     
         24 . A computer system comprising a processing cluster including a plurality of physical or virtual processing modes, the computer system comprising at least one processor and at least one memory coupled to the processor, and wherein the computer system further comprises a file system device implementing an event notification system that includes one or more program modules having program instructions for:
 receiving event notifications corresponding to events occurring on one or more of the processing nodes as callbacks to an application programming interface of the file system device;   queuing the received event notifications in one or more queues for delivery to event consumers;   coalescing duplicate event notifications in a single resulting event notification, wherein the event notifications contain a event sequence number, wherein the coalescing further increments the event sequence number in the resulting event notification to indicate to a corresponding one of the event consumers the total number of original and duplicate events that have been received; and   at an event consumer, determining whether the event notifications have been duplicated one or more times by reading the event sequence number of the event notifications.   
     
     
         25 . A computer program product comprising a computer-readable storage media storing program instructions for execution within a computer system, the computer system comprising a processing cluster including a plurality of physical or virtual processing modes, wherein the program instructions comprise program instructions forming a file system device implementing an event notification system that includes one or more program modules having program instructions for:
 receiving event notifications corresponding to events occurring on one or more of the processing nodes as callbacks to an application programming interface of the file system device;   queuing the received event notifications in one or more queues for delivery to event consumers;   coalescing duplicate event notifications in a single resulting event notification, wherein the event notifications contain a event sequence number, wherein the coalescing further increments the event sequence number in the resulting event notification to indicate to a corresponding one of the event consumers the total number of original and duplicate events that have been received; and   at an event consumer, determining whether the event notifications have been duplicated one or more times by reading the event sequence number of the event notifications.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.