Adaptive Caching of Input / Output Data
Abstract
To improve caching techniques, so as to realize greater hit rates within available memory, of the present invention utilizes a entropy signature from the compressed data blocks to supply a bias to pre-fetching operations. The method of the present invention for caching data involves detecting a data I/O request, relative to a data object, and then selecting appropriate I/O to cache, wherein said selecting can occur with or without user input, or with or without application or operating system preknowledge. Such selecting may occur dynamically or manually. The method further involves estimating an entropy of a first data block to be cached in response to the data I/O request; selecting a compressor using a value of the entropy of the data block from the estimating step, wherein each compressor corresponds to one of a plurality of ranges of entropy values relative to an entropy watermark; and storing the data block in a cache in compressed form from the selected compressor, or in uncompressed form if the value of the entropy of the data block from the estimating step falls in a first range of entropy values relative to the entropy watermark. The method can also include the step of prefetching a data block using gap prediction with an applied entropy bias, wherein the data block is the same as the first data block to be cached or is a separate second data block. The method can also involve the following additional steps: adaptively adjusting the plurality of ranges of entropy values; scheduling a flush of the data block from the cache; and suppressing operating system flushes in conjunction with the foregoing scheduling step.
Claims
exact text as granted — not AI-modified1 . A method for caching data comprising:
detecting a data input/output (I/O) request, relative to a data object; selecting appropriate I/O to cache, wherein said selecting can occur with or without user input, or with or without application or operating system preknowledge; estimating an entropy of a data block to be cached in response to the data input/output request; selecting a compressor using a value of the entropy of the data block from the estimating step, wherein each compressor corresponds to one of a plurality of ranges of entropy values relative to an entropy watermark; storing the data block in a cache in compressed form from the selected compressor, or in uncompressed form if the value of the entropy of the data block from the estimating step falls in a first range of entropy values relative to the entropy watermark; and prefetching the data block using gap prediction with an applied entropy bias.
2 . The method of claim 1 further comprising adaptively adjusting the plurality of ranges of entropy values.
3 . The method of claim 1 further comprising scheduling a flush of the data block from the cache.
4 . The method of claim 3 further comprising suppressing operating system flushes in conjunction with the scheduling step.
5 . The method of claim 1 , wherein said selecting occurs dynamically.
6 . The method of claim 1 , wherein said selecting occurs manually.
7 . A method for caching data comprising:
detecting a data input/output (I/O) request, relative to a data object; selecting appropriate I/O to cache, wherein said selecting can occur with or without user input, or with or without application or operating system preknowledge; estimating an entropy of a first data block to be cached in response to the data input/output request; selecting a compressor using a value of the entropy of the first data block from the estimating step, wherein each compressor corresponds to one of a plurality of ranges of entropy values relative to an entropy watermark; storing the first data block in a cache in compressed form from the selected compressor, or in uncompressed form if the value of the entropy of the first data block from the estimating step falls in a first range of entropy values relative to the entropy watermark; and prefetching a second data block using gap prediction with an applied entropy bias.
8 . The method of claim 7 further comprising adaptively adjusting the plurality of ranges of entropy values.
9 . The method of claim 7 further comprising scheduling a flush of the data block from the cache.
10 . The method of claim 9 further comprising suppressing operating system flushes in conjunction with the scheduling step.
11 . The method of claim 7 , wherein said selecting occurs dynamically.
12 . The method of claim 7 , wherein said selecting occurs manually.
13 . One or more computer program products readable by a machine and containing instructions for performing the method contained in claim 1 .
14 . One or more computer program products readable by a machine and containing instructions for performing the method contained in claim 7 .Join the waitlist — get patent alerts
Track US2009055587A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.