Adaptive throughput optimization

Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output access regulation

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C710S004000, C710S007000, C710S017000, C710S018000, C710S020000, C710S033000, C710S052000, C710S058000, C710S060000, C710S065000, C711S117000

Reexamination Certificate

active

06557055

ABSTRACT:

FIELD OF INVENTION
The present invention relates to computer systems. More specifically, the present invention relates to optimizing throughput during I/O operations to enhance system performance.
BACKGROUND
Input/Output (I/O) generally refers to the transfer of data between a computer and an I/O device, such as a hard disk. Traditionally, I/O operations were controlled by the central processing unit (CPU). The CPU accomplished this by issuing simple I/O instructions, which may have included nothing more than a read or write command and a source or destination of the data to be transferred.
In more conventional systems, I/O operations are typically controlled by special I/O processors. This gives the CPU more time to execute other critical tasks.
There are many ways to measure the efficiency of an I/O operation. One such way is to measure the “throughput” of the I/O operation. Throughput actually represents the rate at which an I/O operation is performed (e.g., in Megabytes per second). If, for example, an I/O operation involves the transfer of 1 Megabyte of data, and that transfer takes 0.1 seconds to complete, the throughput is 10 Megabytes per second.
Throughput optimization is extremely important, as less than optimal throughput can significantly hinder the overall performance of the computer system. Optimizing throughput is particularly important when the amount of data to be transferred during an I/O operation (i.e., the I/O size) is exceptionally large, which is often the case when data is being transported, for example, over a network a network connection.
There are problems, however, associated with optimizing I/O operation throughput. The main problem is that no single technique or strategy for accomplishing an I/O operation is guaranteed to optimize throughput for each and every set of circumstances associated with the I/O operation. That is because each I/O operation may involve different circumstances, such as, different I/O devices (e.g., hard disks, CD ROMs, network devices), wherein each I/O device exhibits its own distinct characteristics which dictate how an I/O operation involving that I/O device should be accomplished. When the I/O operation involves transferring data over a network connection, network conditions such as traffic load and bandwidth restrictions associated with the network connection may affect throughput, and hence, the ability of one specific I/O technique or strategy to achieve optimal throughput.
Typically, the conventional strategy for optimizing throughput during an I/O operation is to maximize I/O size. In other words, conventional systems attempt to optimize throughput during I/O operations by reading as much data as possible from the source I/O device prior to writing the data to the intended destination I/O device. In theory, maximizing I/O size reduces the number of I/O requests (i.e., the number of read and write commands) that must be issued in order to complete the I/O operation. As will be illustrated in greater detail below, reducing the number of I/O requests reduces the number of hardware and/or software overhead operations that are required to complete the I/O operation, for example, issuing commands to reposition the read and/or write heads associated with a hard disk and, of course, physically repositioning them. While this conventional strategy may optimize I/O throughput under one set of circumstances, there is, as stated above, no guarantee that this same strategy will optimize I/O throughput under another set of circumstances. Simply stated, there are many factors that determine which of several I/O strategies are best suited to optimize throughput during a given I/O operation.
One factor that is highly likely to determine which of several I/O strategies is best suited for optimizing throughput is whether the I/O device (or devices) has an internal buffer or cache. Another factor is the amount of overhead involved with reading and/or writing the data from/to an I/O device.
FIGS. 1A-1D
illustrate how factors, such as whether an I/O device has an internal buffer, influence whether one I/O strategy, for example, a strategy that involves a relatively large I/O size, is more likely to optimize throughput than another I/O strategy, for example, a strategy that involves a relatively small I/O size.
More specifically,
FIG. 1A
illustrates the amount of time that may be required to complete an I/O operation that involves reading data from a first I/O device (e.g., a first hard disk) to a computer, and writing that data from the computer to a second I/O device (e.g., a second hard disk), where neither I/O device has an internal buffer or cache. In this example, four relatively small read operations and four relatively small write operations are needed to complete the I/O operation, where a certain amount of hardware and software overhead is associated with each read operation and each write operation.
In contrast,
FIG. 1B
illustrates that the I/O operation shown in
FIG. 1A
may be accomplished in a shorter period of time if I/O size is increased. As illustrated, increasing the I/O size results in fewer read and write operations. Fewer read and write operations, in turn, result in less time dedicated to overhead operations. As less time is needed for overhead operations, the overall I/O operation is completed in a shorter period of time. Since the same amount of data is transferred using the I/O strategy illustrated in
FIG. 1B
as compared to
FIG. 1A
, the throughput associated with the strategy illustrated in
FIG. 1B
is greater than the throughput associated with the strategy illustrated in FIG.
1
A.
Contrary to the results achieved by employing the I/O strategies illustrated in
FIGS. 1A and 1B
,
FIGS. 1C and 1D
together illustrate that a shorter I/O size may result in optimal throughput when the I/O devices employ an internal buffer or cache, particularly “read-ahead” and/or “write-behind” cache, and accordingly, the read and write operations, in whole or in part, overlap in the time domain. More specifically,
FIG. 1C
illustrates that under these circumstances, a relatively large I/O size results in lower throughput as compared to the strategy shown in
FIG. 1D
, which involves a relatively small I/O size.
Given the above-identified problems associated with optimizing throughput during I/O operations, it would be highly desirable to provide a method and/or apparatus that is capable of adaptively establishing an I/O operation strategy that is most likely to optimize throughput during any given I/O operation, on a case-by-case basis.
SUMMARY OF THE INVENTION
The present invention involves optimizing throughput during I/O operations. Moreover, the present invention does so at runtime and/or continuously throughout the duration of the I/O operation. Thus, the present invention provides an adaptive technique for optimizing throughput, and it does so regardless of the specific hardware configuration associated with the I/O device or devices involved with the I/O operation, as well as additional factors that might otherwise impact the efficiency of the I/O operation.
In accordance with one aspect of the present invention, a method for adaptively improving throughput during an I/O operation is provided. The method involves transferring an amount of data corresponding to a first I/O request. An amount of data corresponding to a second I/O request is then adapted so that the throughput associated with the second I/O request increases as compared to the throughput associated with the first I/O request.
In accordance with another aspect of the present invention, a method for adaptively improving throughput during an I/O operation is provided. The method involves transferring data from a source device to a destination device through a plurality of I/O requests, and continuously increasing the I/O size of the I/O requests, until throughput has been maximized. Any remaining data associated with the I/O operation is then transferred through one or more I/O requests, where the I/O size associated with the one or more I/O reque

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Adaptive throughput optimization does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Adaptive throughput optimization, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Adaptive throughput optimization will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3075081

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.