Browse Prior Art Database

Software Methodology for Maximizing System Performance for Variable Request Message Processing Rates

IP.com Disclosure Number: IPCOM000033025D
Original Publication Date: 2004-Nov-22
Included in the Prior Art Database: 2004-Nov-22
Document File: 5 page(s) / 105K

Publishing Venue

IBM

Abstract

Disclosed is a software methodology which prioritizes the processing of request messages which arrive through a communication channel from a sender computer to a receiver computer. The objective of this methodology is to use a software means to maximize system performance by handling sender request messages, each of which have various processing rates, in such a way that the application program in the receiver computer does not have threads blocked waiting for a particular priority type of message to arrive from the sender computer. Another objective of this methodology is to process all messages regardless of priority type, in a timely manner such that lower priority messages do not appear to be ignored from the perspective of the sender computer.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 24% of the total text.

Page 1 of 5

Software Methodology for Maximizing System Performance for Variable Request Message Processing Rates

The software device driver in the receiver computer which controls the receiver portion of the communication channel maintains some number of buffers, each of which is assigned a priority level. Certain sender request messages are known by both the sender and receiver end users to have a slower application program processing speed while other messages are known by both the sender and receiver end users to have a faster application program processing speed. The receiver computer's application program which queries the device driver for available sender request messages also directs the device driver how to fetch these request messages from the prioritized buffers in accordance with the methodology of this disclosure. The methodology eliminates application thread bottlenecks to promote the fastest possible handling of a mixture of both "fast" and "slow" sender request messages. The result of using this methodology is a sender request message processing rate that is higher than any rate achieved by prior art.

  The difficulty in prior art has been in the area of how to process a mixture of prioritized messages arriving randomly from a sender computer in the most expedient fashion, and at the same time, prevent postponed or prolonged processing of lower priority messages.

  One common method in prior art has been to dedicate one or more application threads to wait, or block, until messages arrive in a particular priority buffer. The problem with this method is that the message whose priority the application thread is waiting for, may take an indeterminate amount of time to arrive from the sender computer, if it arrives at all. Thus the application thread is unproductive and remains idle until a message with the priority with which the application thread is waiting for, arrives from the sender computer.

  Another common method in prior art is to process the highest priority message that arrives from the sender computer. If a particular message is being processed when a higher priority message arrives, the CPU would switch to processing the newly arrived higher priority message, then when completed, continue processing the lower priority message. The problem which arises using this method is that a lower priority message may be incessantly interrupted by high priority messages arriving from the sender computer. The incessant interruptions will prolong the processing of the lower priority message to the point that in extreme cases, the lower priority message will appear to have stalled.

  In a typical embodiment of the disclosure, the hardware communication channel is designed to route messages to one of three possible memory buffers, depending upon the value of a certain field within the message itself. Generally speaking, the number of possible memory buffers can range from 2 to N. For the case of 2 priority buffers, one buffer would be deemed...