Method and apparatus for enhancing the disk cache process by dynamically sizing prefetch data associated with read requests based upon the current cache hit rate
First Claim
1. A method of reading data in a computer system, the computer system including a disk and a disk cache in communication with the disk, wherein the computer system runs an application program which makes a first read request whenever it needs data to execute the program, the method comprising the steps of:
- (a) tracking a disk cache hit rate of the computer system;
(b) detecting a request for data which is immediately requested by the computer system but which is not currently present in the disk cache;
(c) formulating a read request to obtain the requested data from the disk; and
(d) dynamically sizing the read request based upon the current disk cache hit rate, wherein any data requested in the read request which is not the immediately requested data is located adjacent to the immediately requested data on the disk, wherein steps (a)-(d) are performed by;
(e) receiving the first read request in a disk cache enhancer and in a disk cache manager, the disk cache manager including disk cache which is the disk cache of the computer system;
(f) providing the requested data to the application program from the disk cache if the requested data is currently in the disk cache; and
(g) formulating a second read request by the disk cache enhancer if the requested data is detected as not currently being in the disk cache, wherein the second read request is the dynamically sized read request of steps (c) and (d).
1 Assignment
0 Petitions
Accused Products
Abstract
The performance of a disk cache subsystem is enhanced by dynamically sizing read requests based upon the current disk cache hit rate. Any data requested in the read request which is not the immediately requested data is located adjacent to the immediately requested data. Accordingly, the size of the read request depends upon at least one variable factor other than the size of the requested data. More specifically, the size of the read request is reduced as the disk cache hit rate declines, and the size of the read request is increased as the disk cache hit rate increases. Short-term and long-term disk cache hit rates are tracked. The short-term disk cache hit rate is used to determine the reduction in the size of the read request, and the long-term disk cache hit rate is used to determine the increase in the size of the read request. The read request is a read-around request formulated to obtain the immediately requested data, plus additional data which is not requested and which is located before and after the immediately requested data. When reading data in a computer system that includes a disk and a disk cache in communication with the disk, the computer system runs an application program which makes a first read request whenever it needs data to execute the program. The first read request is received in a disk cache enhancer and in a disk cache manager. The disk cache manager includes disk cache which is the disk cache of the computer system. The requested data is provided to the application program from the disk cache if the requested data is currently in the disk cache. A second read request is formulated by the disk cache enhancer if the requested data is detected as not currently being in the disk cache. The second read request is the dynamically sized read request. When used in a Windows® operating system environment, the initial read-around value is about 1 megabyte.
23 Citations
20 Claims
-
1. A method of reading data in a computer system, the computer system including a disk and a disk cache in communication with the disk, wherein the computer system runs an application program which makes a first read request whenever it needs data to execute the program, the method comprising the steps of:
-
(a) tracking a disk cache hit rate of the computer system; (b) detecting a request for data which is immediately requested by the computer system but which is not currently present in the disk cache; (c) formulating a read request to obtain the requested data from the disk; and (d) dynamically sizing the read request based upon the current disk cache hit rate, wherein any data requested in the read request which is not the immediately requested data is located adjacent to the immediately requested data on the disk, wherein steps (a)-(d) are performed by; (e) receiving the first read request in a disk cache enhancer and in a disk cache manager, the disk cache manager including disk cache which is the disk cache of the computer system; (f) providing the requested data to the application program from the disk cache if the requested data is currently in the disk cache; and (g) formulating a second read request by the disk cache enhancer if the requested data is detected as not currently being in the disk cache, wherein the second read request is the dynamically sized read request of steps (c) and (d). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of reading data in a computer system, the computer system including a disk and a disk cache in communication with the disk, the method comprising the steps of:
-
(a) tracking a disk cache hit rate of the computer system; (b) detecting a request for data which is immediately requested by the computer system but which is not currently present in the disk cache; (c) formulating a read request to obtain the requested data from the disk; and (d) dynamically sizing the read request based upon the current disk cache hit rate, wherein any data requested in the read request which is not the immediately requested data is located adjacent to the immediately requested data on the disk, wherein the size of the read request is related to the disk cache hit rate in a manner such that the size of the read request is reduced as the disk cache hit rate declines, and the size of the read request is increased as the disk cache hit rate increases, wherein the tracking of the hit rate in step (a) includes tracking a short-term disk cache hit rate and a long-term disk cache hit rate, the size of the read request in step (d) being further dependent upon the short-term disk cache hit rate and the long-term disk cache hit rate, the short-term disk cache hit rate being used as the current disk cache hit rate to determine the reduction in the size of the read request, and the long-term disk cache hit rate being used as the current disk cache hit rate to determine the increase in the size of the read request.
-
-
11. A computer-readable medium whose contents cause a computer to read data in a computer system, the computer system including a disk and a disk cache in communication with the disk, wherein the computer system runs an application program which makes a first read request whenever it needs data to execute the program, the contents of the computer-readable medium, when executed, performing the steps of:
-
(a) tracking a disk cache hit rate of the computer system; (b) detecting a request for data which is immediately requested by the computer system but which is not currently present in the disk cache; (c) formulating a read request to obtain the requested data from the disk; and (d) dynamically sizing the read request based upon the current disk cache hit rate, wherein any data requested in the read request which is not the immediately requested data is located adjacent to the immediately requested data on the disk, wherein steps (a)-(d) are performed by; (e) receiving the first read request in a disk cache enhancer and in a disk cache manager, the disk cache manager including disk cache which is the disk cache of the computer system; (f) providing the requested data to the application program from the disk cache if the requested data is currently in the disk cache; and (g) formulating a second read request by the disk cache enhancer if the requested data is detected as not currently being in the disk cache, wherein the second read request is the dynamically sized read request of steps (c) and (d). - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable medium whose contents cause a computer to read data in a computer system, the computer system including a disk and a disk cache in communication with the disk, the contents of the computer-readable medium, when executed, performing the steps of:
-
(a) tracking a disk cache hit rate of the computer system; (b) detecting a request for data which is immediately requested by the computer system but which is not currently present in the disk cache; (c) formulating a read request to obtain the requested data from the disk; and (d) dynamically sizing the read request based upon the current disk cache hit rate, wherein any data requested in the read request which is not the immediately requested data is located adjacent to the immediately requested data on the disk, wherein the size of the read request is related to the disk cache hit rate in a manner such that the size of the read request is reduced as the disk cache hit rate declines, and the size of the read request is increased as the disk cache hit rate increases, wherein the tracking of the hit rate in step (a) includes tracking a short-term disk cache hit rate and a long-term disk cache hit rate, the size of the read request in step (d) being further dependent upon the short-term disk cache hit rate and the long-term disk cache hit rate, the short-term disk cache hit rate being used to determine the reduction in the size of the read request, and the long-term disk cache hit rate being used to determine the increase in the size of the read request.
-
Specification