1. Field of the Invention
The present invention is related to handling of event notification overflow or potential overflow conditions in computer systems, and more specifically to handling of duplicate events so that additional queue space is not required.
2. Description of Related Art
In large-scale distributed computer systems, such as those using distributed software models to perform tasks, multiple nodes provide independent execution of sub-tasks. In order to keep such a system operational, and further, to provide indication of events occurring at one node that either require a reaction from another node or indicate to the other node that either an erroneous operating condition has occurred, or that a phase of processing is complete. In particular, event notification and event logging are operations used to indicate system health to system administrators or software applications, including operating systems components.
Health monitoring techniques employed in distributed processing systems perform an important function in that connections to other nodes must be reliable and all of the active nodes that have been assigned tasks need to perform those tasks in order to ensure that the totality of the processing requirements are met, and in a timely fashion. The health of a node-based distributed processing system is typically monitored by: 1) a heartbeat messaging system, which passes messages between the nodes and a central monitoring component; and 2) an event notification system that signals interested nodes when events occur on other nodes. Event notification systems in node-based distributed processing systems typically require an interested application (a consumer) to register to receive event notifications either with a centralized event manager, or with the processes or objects that generate the events (an event producer).
Events in such a system may be reported multiple times. For example, an event may be reported for each interested event consumer. With the large number of events that may be generated, in particular where the event itself is triggered multiple times due to a resource change or a hardware or media failure, a large number of duplicate events may be buffered at a node, causing event queue overflow and/or consuming processing bandwidth that could be used to handle other events. While the duplicate events could simply be removed from the queue, information about how many events have occurred and the timing of the events may be lost.
The invention provides an event notification method that is embodied in a computer-performed method that provides queuing of events to event consumers, while coalescing duplicate events.
When a duplicate event notification is detected at the input to a queue that stores event notifications for delivery to an event consumer, rather than queuing the event notification, a previously-received event notification is updated by incrementing the sequence number of the previously-received event notification. Therefore, when the event consumer receives the event notification, the event consumer can determine exactly how many events the coalesced event notification represents. The timestamp of the event notification may also be updated to match the timestamp of the most recently-received duplicate event notification.
The foregoing and other objectives, features, and advantages of the invention will be apparent from the following, more particular, description of the preferred embodiments of the invention, as illustrated in the accompanying drawings.
The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives, and advantages thereof, will best be understood by reference to the following detailed description of the invention when read in conjunction with the accompanying Figures, wherein like reference numerals indicate like components, and:
The present invention encompasses techniques for event notification in clusters of nodes within distributed computing systems. In particular, embodiments of the invention can be used to reduce event processing bandwidth and storage requirements by coalescing duplicate events that are being queued for delivery to event consumers. Information about how many duplicate events is preserved by incrementing a sequence number within the event notification when a duplicate event is combined with a previously queued event notification. The timestamp of the event notification can be updated with the timestamp of the most recently received duplicate event.
Referring now to
Referring now to
While event notification in accordance with embodiments of the present invention may be implemented using a variety of event notification mechanisms, such as direct object-to-object interfaces, using operating system-maintained signaling object such as semaphores, in the depicted embodiment, the event notification is provided by a special file system that implements an event manager. Event consumers, i.e., the applications or objects interested in receiving event notifications, register to receive event notifications by calling file operation functions/methods on an interface to the file system. Event producers notify the file system of events via a separate application programming interface (API) provided by the event manager. The event manager then provides the event notifications to the event consumers interested in the particular events represented by the event notifications. In the depicted embodiment, the file system is a kernel extension, which facilitates availability and uniformity of the event manager at each node in the system. Further details of a file-system based event manager are provided in U.S. Patent Application Publication U.S. 200901991051, which is incorporated herein by reference. The event notification system the “Autonomic Health Advisor File System” (AHAFS) disclosed in the above-incorporated U.S. patent application does not provide direct event notification between the nodes, so a separate layer is used for inter-node event communication. The generic methods open( ) and write( ) described below are understood to include specific file operations fopen( ) and fwrite( ) as alternatives, or other operations provided in a file system interface that can be used to provide the same type of information flow.
Referring now to
The present invention provides reduction in processing overhead and the chance of overflow of queues 36A and 36B, by detecting that a duplicate event notification is about to be inserted in one of queues 36A and 36B, and altering the event notification to indicate to the corresponding event consumer 38A-38B, the number of event notifications represented by the modified event notification, and the timestamp of the latest such event notification received.
Table I above illustrates an event notification received for a first event e, which has an event sequence number of 1. If additional identical event notifications having the same data are received, the AHAFS according to an embodiment of the present invention will increment the event sequence number for each duplicate event that is then received and discarded. When the corresponding event consumer processes the event notification, the consumer can determine the number of event notifications received by the value of the event sequence number. Since the field (event sequence number) used to store the indication that more than one event has been received is a field already within the event notification, the event consumers do not have to handle a new/different format that includes additional fields to indicate a duplicate event. Therefore, the same parsing format can be used to interpret the event notification, since the coalesced event notification has the same format as an individual event notification.
The event consumer can also determine the most recent occurrence of the event by noting the timestamp, which has been replaced with the timestamps of the incoming event notifications as they are received and discarded. In the particular embodiment depicted herein, if a different event notification is received between duplicate event notifications, then the more recent event notifications are not discarded, so the event consumer can rely that no other events have transpired between the event notifications that have been coalesced. The updating of timestamps can be user settable in accordance with an embodiment of the present invention to update with the latest timestamp, or retain the timestamp of the first occurrence of the event, which may be selected on a per-customer basis. As another alternative embodiment, event consumers, when registering to receive notifications for a particular event, may be provided the option of specifying a flag, e.g., TIMESTAMP=FIRST or TIMESTAMP=LAST, which in the depicted embodiment are written to the file that represents the event. The flag indicates, for each event consumer and on a per event-type basis, whether the timestamp field is updated with each received event notification that is coalesced, or whether the original timestamp is preserved.
Referring now to
As noted above, the present invention may be embodied as a system, method, and/or a computer program product. A computer program product may be embodied in firmware, an image in system memory or another memory/cache, stored on a fixed or re-writable media such as an optical disc having computer-readable code stored thereon. Any combination of one or more computer readable medium(s) may be used to store the program instructions in accordance with an embodiment of the invention. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
In the context of the present application, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device. A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. Further, while the illustrative embodiment is directed to an AIX (AIX is a trademark of IBM) or other type of UNIX operating system (UNIX is a trademark of The Open Group), in which the event notification is provided by a mountable file system provided as a kernel extension, it is understood that the techniques of the present invention can be applied in event monitoring systems executing under any operating system and can be implemented using proprietary or standardized signaling interfaces as an alternative to the file system interface provided in the depicted embodiments.
While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and details may be made therein without departing from the spirit and scope of the invention.
The present application is a Continuation of U.S. patent application Ser. No. 12/879,365, filed on Sep. 10, 2010 and claims priority thereto under 35 U.S.C. 120.
Number | Name | Date | Kind |
---|---|---|---|
5721825 | Lawson et al. | Feb 1998 | A |
6038563 | Bapat et al. | Mar 2000 | A |
6064656 | Angal et al. | May 2000 | A |
6185613 | Lawson et al. | Feb 2001 | B1 |
6411967 | Van Renesse | Jun 2002 | B1 |
6591317 | Schzukin et al. | Jul 2003 | B1 |
6631363 | Brown et al. | Oct 2003 | B1 |
6778504 | Santry et al. | Aug 2004 | B2 |
6862619 | Sugauchi et al. | Mar 2005 | B1 |
6983324 | Block et al. | Jan 2006 | B1 |
7058957 | Nguyen | Jun 2006 | B1 |
7308689 | Black et al. | Dec 2007 | B2 |
7542437 | Redi et al. | Jun 2009 | B1 |
7571230 | Gissel et al. | Aug 2009 | B2 |
7650404 | Parupudi et al. | Jan 2010 | B2 |
7664125 | Bauer et al. | Feb 2010 | B1 |
7856480 | Muchow | Dec 2010 | B2 |
7913105 | Ganesh et al. | Mar 2011 | B1 |
8108715 | Agarwal | Jan 2012 | B1 |
8161053 | Khan et al. | Apr 2012 | B1 |
8384549 | Lemmon | Feb 2013 | B2 |
8433760 | Ganapathy et al. | Apr 2013 | B2 |
8484472 | Sherkin et al. | Jul 2013 | B2 |
8634330 | Ganapathy et al. | Jan 2014 | B2 |
20020178275 | Hein et al. | Nov 2002 | A1 |
20030061340 | Sun et al. | Mar 2003 | A1 |
20030088831 | Bauer et al. | May 2003 | A1 |
20030093516 | Parsons et al. | May 2003 | A1 |
20030105801 | Tse et al. | Jun 2003 | A1 |
20030225840 | Glassco et al. | Dec 2003 | A1 |
20040008727 | See et al. | Jan 2004 | A1 |
20040030775 | Lauzon et al. | Feb 2004 | A1 |
20040064835 | Bellwood et al. | Apr 2004 | A1 |
20040172467 | Wechter et al. | Sep 2004 | A1 |
20050050098 | Barnett | Mar 2005 | A1 |
20050065953 | Bower et al. | Mar 2005 | A1 |
20050076145 | Ben-Zvi et al. | Apr 2005 | A1 |
20050152396 | Pichna et al. | Jul 2005 | A1 |
20050172162 | Takahashi | Aug 2005 | A1 |
20050234929 | Ionescu et al. | Oct 2005 | A1 |
20060031282 | Tuttle et al. | Feb 2006 | A1 |
20060087409 | Korzeniowski | Apr 2006 | A1 |
20070041328 | Bell, IV | Feb 2007 | A1 |
20070140243 | Eastham | Jun 2007 | A1 |
20070226182 | Sobotka et al. | Sep 2007 | A1 |
20070282959 | Stern | Dec 2007 | A1 |
20080008106 | Boberg et al. | Jan 2008 | A1 |
20080077635 | Sporny et al. | Mar 2008 | A1 |
20080183857 | Barfield et al. | Jul 2008 | A1 |
20080317050 | Xiong et al. | Dec 2008 | A1 |
20090043887 | Coekaerts | Feb 2009 | A1 |
20090138808 | Moromisato et al. | May 2009 | A1 |
20090192965 | Kass | Jul 2009 | A1 |
20090199051 | Jann et al. | Aug 2009 | A1 |
20090288089 | Choi et al. | Nov 2009 | A1 |
20100077310 | Karachale et al. | Mar 2010 | A1 |
20100094922 | Sathish | Apr 2010 | A1 |
20100099447 | Boberg et al. | Apr 2010 | A1 |
20100113072 | Gibson et al. | May 2010 | A1 |
20100153528 | Pearson et al. | Jun 2010 | A1 |
20100223492 | Farrugia et al. | Sep 2010 | A1 |
20100274885 | Yoo et al. | Oct 2010 | A1 |
20100281304 | Moyer et al. | Nov 2010 | A1 |
20100290469 | Assarpour | Nov 2010 | A1 |
20100332277 | Dentzer et al. | Dec 2010 | A1 |
20110035462 | Akella | Feb 2011 | A1 |
20110041140 | Harm et al. | Feb 2011 | A1 |
20110093743 | Arcese et al. | Apr 2011 | A1 |
20110145639 | Farahmand et al. | Jun 2011 | A1 |
20110202500 | Warn et al. | Aug 2011 | A1 |
20110274053 | Baik et al. | Nov 2011 | A1 |
20120036250 | Vaswani et al. | Feb 2012 | A1 |
20120047257 | Hauser | Feb 2012 | A1 |
20120144018 | Fried et al. | Jun 2012 | A1 |
20120203897 | Mishra et al. | Aug 2012 | A1 |
20120203899 | Ganapathy et al. | Aug 2012 | A1 |
20130042001 | Gould et al. | Feb 2013 | A1 |
Entry |
---|
Final Office Action in U.S. Appl. No. 12/879,365, mailed on Feb. 26, 2013, 21 pages (pp. 1-21 in pdf). |
Office Action in U.S. Appl. No. 12/879,365 mailed on Oct. 25, 2012. |
Office Action in U.S. Appl. No. 12/879,365 mailed on Oct. 25, 2012, 21 pages (pp. 1-21 in pdf). |
Number | Date | Country | |
---|---|---|---|
20120198477 A1 | Aug 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12879365 | Sep 2010 | US |
Child | 13427159 | US |