Adaptive throughput optimization
First Claim
Patent Images
1. A method for adaptively improving throughput during an I/O operation comprising the steps of:
- transferring an amount of data corresponding to a first I/O request;
adapting an amount of data corresponding to a second I/O request, such that the throughput associated with the second I/O request increases over the throughput associated with the first I/O request; and
adapting an amount of data corresponding to each of a number of additional I/O requests, such that the throughput associated with each additional I/O request increases over the throughput associated with a previous I/O request, until the I/O operation is complete.
2 Assignments
0 Petitions
Accused Products
Abstract
Computer system performance may be significantly enhanced by optimizing data throughput during input/output (I/O) operations. In turn, data throughput, during an I/O operation, may be optimized by adaptively modifying the I/O strategy at runtime, and/or continuously throughout the I/O operation, regardless of the specific hardware configuration associated with the I/O devices involved with the I/O operation, as well as additional factors that might otherwise impact the efficiency of the I/O operation.
62 Citations
35 Claims
-
1. A method for adaptively improving throughput during an I/O operation comprising the steps of:
-
transferring an amount of data corresponding to a first I/O request;
adapting an amount of data corresponding to a second I/O request, such that the throughput associated with the second I/O request increases over the throughput associated with the first I/O request; and
adapting an amount of data corresponding to each of a number of additional I/O requests, such that the throughput associated with each additional I/O request increases over the throughput associated with a previous I/O request, until the I/O operation is complete. - View Dependent Claims (2)
determining whether the throughput associated with the second I/O request represents maximum throughput; and
completing a number of additional I/O requests, until the I/O operation is complete, wherein an amount of data associated with each of the additional I/O requests is fixed and equal to the amount of data associated with the second I/O request, if it is determined that the throughput associated with the second I/O request represents maximum throughput.
-
-
3. A method for adaptively improving throughput during an I/O operation comprising the steps of:
-
transferring data associated with the I/O operation from a source device to a destination device through a plurality of I/O requests;
continuously increasing the I/O size of the I/O requests, until throughput has been maximized; and
transferring any remaining data associated with the I/O operation through one or more I/O requests, wherein the I/O size associated with the one or more I/O requests is fixed and equal to the I/O size corresponding to maximum throughput. - View Dependent Claims (4, 5)
measuring the throughput associated with an I/O request;
comparing the throughput measurement associated with the I/O request to a throughput measurement associated with a previous I/O request; and
determining whether the throughput has been maximized based on said step of comparing the throughput measurements.
-
-
5. The method of claim 4, wherein said step of determining whether the throughput has been maximized comprises the step of:
determining whether the throughput associated with the I/O request is less than or equal to the throughput associated with the previous I/O request.
-
6. A method for improving computer performance during an I/O operation comprising the steps of:
-
transferring a portion of data associated with the I/O operation from a source device to a destination device;
measuring a throughput value associated with transferring said portion of data;
determining whether the measured throughput value is greater than a previous throughput value; and
transferring a next portion of data associated with the I/O operation from the source device to the destination device, wherein the next portion of data is greater than the prior portion of data, if the measured throughput value is determined to be greater than the previous throughput value. - View Dependent Claims (7, 8, 9, 10, 11)
transferring a next portion of data associated with the I/O operation from the source device to the destination device, wherein the size of the next portion of data is set equal to a fixed amount that is less than the size of a previously transferred portion of data, if a measured throughput value associated with the previously transferred portion of data is not greater than a previously measured throughput value.
-
-
8. The method of claim 7, further comprising the step of:
transferring additional portions of data associated with the I/O operation, until all of the data associated with the I/O operation has been transferred, wherein the size of each additional portion of data is equivalent to said fixed amount.
-
9. The method of claim 6, further comprising the steps of:
-
determining whether an amount of time required to transfer the portion of data exceeded a maximum amount of time, if it is previously determined that the measured throughput value is greater than the previous throughput value; and
if it is determined that the amount of time required to transfer the portion of data exceeded the maximum amount of time, setting the size of a next portion of data to be transferred, if any, to a fixed amount that is less than or equal to the size of a previously transferred portion of data.
-
-
10. The method of claim 9, further comprising the step of:
transferring additional portions of data associated with the I/O operation from the source device to the destination device, until all of the data associated with the I/O operation has been transferred, wherein the size of each additional portion of data is equivalent to said fixed amount.
-
11. The method of claim 9 further comprising the step of:
increasing the size of a next portion of data to be transferred, if any, if it is determined that the amount of time required to transfer the portion of data did not exceed the maximum amount of time.
-
12. A method for improving the performance of a computer system during an ion that involves the transfer of a quantity of data, said method comprising the steps of:
-
storing a value representing an amount of time to transfer a portion of data from a source device to a destination device;
transferring a portion of the data from the source device to the destination device;
measuring the time required to complete said step of transferring the portion of data from the source device to the destination device;
determining whether the measured amount of time is greater than the stored value;
transferring a next portion of data, where the next portion of data is less than the prior portion of data, if it is determined that the measured amount of time is greater than the stored value; and
storing the value associated with the measured amount of time in place of the previously stored value. - View Dependent Claims (13, 14, 15)
transferring a next portion of data, where the next portion of data is greater than the prior portion of data, if it is determined that the measured amount of time is less than the stored value.
-
-
14. The method of claim 13 further comprising the step of:
repeating said steps of transferring a next portion of data, wherein the next portion of data is less than the prior portion of data, if it is determined that the measured amount of time is greater than the stored value, and wherein the next portion of data is greater than the prior portion of data, if it is determined that the measured amount of time is less than the stored value, until the quantity of data associated with the I/O operation has been transferred from the source device to the destination device.
-
15. The method of claim 14, wherein the portions of data are transferred between a network device and the computer system.
-
16. A computer system comprising:
-
means for transferring a portion of data associated with an I/O operation from a source device to a destination device;
means for measuring a throughput value associated with transferring said portion of data;
means for determining whether the measured throughput value is greater than a previous throughput value; and
means for transferring a next portion of data associated with the I/O operation from the source device to the destination device, wherein the next portion of data is greater than the prior portion of data, if the measured throughput value associated with the transfer of the prior portion of data is greater than a previous throughput value. - View Dependent Claims (17, 18, 19, 20, 21)
means for transferring a next portion of data associated with the I/O operation from the source device to the destination device, wherein the size of the next portion of data is set equal to a fixed amount that is less than the size of a previously transferred portion of data, if a measured throughput value associated with the previously transferred portion of data is not greater that a previously measured throughput value.
-
-
18. The computer system of claim 17 further comprising:
means for transferring additional portions of data associated with the I/O operation, until all of the data associated with the I/O operation has been transferred, wherein the size of each additional portion of data is equivalent to said fixed amount.
-
19. The computer system of claim 16 further comprising:
-
means for determining whether an amount of time required to transfer the portion of data exceeded a maximum amount of time, if it is previously determined that the measured throughput value is greater than the previous throughput value; and
if it is determined that the amount of time required to transfer the portion of data exceeded the maximum amount of time, means for setting the size of a next portion of data to be transferred, if any, to a fixed amount that is less than or equal to the size of a previously transferred portion of data.
-
-
20. The computer system of claim 19 further comprising:
means for transferring additional portions of data associated with the I/O operation from the source device to the destination device, until all of the data associated with the I/O operation has been transferred, wherein the size of each additional portion of data is equivalent to said fixed amount.
-
21. The computer system of claim 19 further comprising:
means for increasing the size of a next portion of data to be transferred, if any, if it is determined that the amount of time required to transfer the portion of data did not exceed the maximum amount of time.
-
22. A computer system comprising:
-
means for storing a value that represents an amount of time to transfer a portion of data associated with an I/O operation from a source device to a destination device;
means for transferring a portion of the data from the source device to the destination device;
means for measuring the time required to transfer the portion of data from the source device to the destination device;
means for determining whether the measured amount of time is greater than the stored value;
means for transferring a next portion of data associated with the I/O operation, where the next portion of data is less than the previous portion of data, if it is determined that the measured amount of time is greater than the stored value; and
means for storing the value associated with the measured amount of time in place of the previously stored value. - View Dependent Claims (23, 24, 25)
means for transferring a next portion of data associated with the I/O operation, where the next portion of data is greater than the prior portion of data, if it is determined that the measured amount of time is less than the stored value.
-
-
24. The computer system claim 23 further comprising:
means for repeatedly transferring a next portion of data associated with the I/O operation, wherein the next portion of data is less than the prior portion of data, if it is determined that the measured amount of time is greater than the stored value, and wherein the next portion of data is greater than the prior portion of data, if it is determined that the measured amount of time is less than the stored value, until the quantity of data associated with the I/O operation has been transferred from the source device to the destination device.
-
25. The computer system of claim 22, wherein the portions of data are transferred between a network device and the computer system.
-
26. A computer-readable medium having stored there on, a computer program that adaptively optimizes throughput for an I/O operation, said computer program comprising the executable steps of:
-
storing a value for throughput;
storing a value for I/O size;
moving a portion of data associated with the I/O operation from a source device to a destination device, wherein the I/O size associated with the portion of data is equivalent to the stored value associated with I/O size;
measuring the throughput associated with moving the portion of data;
determining whether the measured throughput value is greater than the stored throughput value; and
increasing the I/O size of a next portion of data to be transferred during the I/O operation, if it was determined that the measured throughput value is greater than the stored throughput value; and
moving a next portion of data associated with the I/O operation from the source device to the destination device. - View Dependent Claims (27, 28, 29, 30, 31)
incrementing the I/O size of additional portions of data, and thereafter, moving each additional portion of data from the source device to the destination device, if a measured throughput value associated with moving a prior portion of data is determined to be greater than the previous throughput value; and
decrementing the size of a next portion of data, such that the I/O size of the next portion of data is set equal to a fixed I/O size that is less than the I/O size associated with the prior portion of data, if it is determined that a measured throughput value associated with the prior portion of data is not greater that the previous throughput value.
-
-
28. The computer program of claim 27 further comprising the executable steps of:
moving additional portions of data associated with the I/O operation, until all of data associated with the I/O operation has been moved, wherein the I/O size associated with each additional portion of data is equivalent to said fixed I/O size.
-
29. The computer program of claim 26 further comprising the executable steps of:
-
measuring an amount of time required to move the portion of data from the source device to the destination device;
determining whether the measured amount of time exceeded a maximum amount of time allotted for moving the portion of data from the source device to the destination device, if it is determined that the measured throughput value is greater than the stored throughput value; and
if it is determined that the measured amount of time exceeded the maximum amount of time, setting the I/O size associated with a next portion of data to be moved, if any, to a fixed I/O size that is less than or equal to the I/O size of the prior portion of data.
-
-
30. The computer program of claim 29 further comprising the executable steps of:
moving additional portions of data, until all data associated with the I/O operation has been moved, wherein the I/O size associated with each additional portion of data is equivalent to said fixed I/O size.
-
31. The computer program of claim 29 further comprising the executable step of:
incrementing the size of a next portion of data to be transferred, if any, if it is determined that the measured amount of time did not exceed the maximum amount of time.
-
32. A computer-readable medium having stored thereon, a computer program that adaptively optimizes data throughput for an I/O operation, said computer program comprising the executable steps of:
-
storing a value representing an amount of time to move a portion of data from a source device to a destination device;
moving a portion of the data associated with the I/O operation from the source device to the destination device;
measuring the time required to move the portion of data;
determining whether the measured amount of time is greater than the stored value;
moving a next portion of data associated with the I/O operation, where the I/O size associated with the next portion of data is less than the I/O size of the prior portion of data, if it is determined that the measured amount of time is greater than the stored value; and
storing the value associated with the measured amount of time in place of the previously stored value. - View Dependent Claims (33, 34, 35)
moving a next portion of data associated with the I/O operation, where the I/O size associated with the next portion of data is greater than the I/O size of the prior portion of data, if it is determined that a measured amount of time required to move a prior portion of data from the source device to the destination device is less than the stored value.
-
-
34. The computer program of claim 33 further comprising the executable steps of:
repeatedly moving a next portion of data associated with the I/O operation, wherein the I/O size associated with the next portion of data is set equal to an amount that is less than the I/O size of a previous portion of data, if it is determined that a measured amount of time required to move the previous portion of data is greater than a stored value, and wherein the I/O size associated with the next portion of data is set equal to an amount that is greater than the I/O size associated with the previous portion of data, if it is determined that the measured amount of time required to move the previous portion of data is less than the stored value, until all of the data associated with the I/O operation has been moved from the source device to the destination device.
-
35. The computer program of claim 33, wherein the portions of data are transferred over a network connection between a network device and the computer system.
Specification