Cache data placement for compression in data storage systems
US-10466932-B2 · Nov 5, 2019 · US
US10747723B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10747723-B2 |
| Application number | US-201715814856-A |
| Country | US |
| Kind code | B2 |
| Filing date | Nov 16, 2017 |
| Priority date | Nov 16, 2017 |
| Publication date | Aug 18, 2020 |
| Grant date | Aug 18, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Dynamic and selective compression for content caching is provided for improving content delivery over a digital network. The dynamic and selective compression increased server cache size for higher cache-hit ratios that offset delays associated with compressing and decompressing content. The dynamic compression involves switching between an available set of compression tools in order to compress different files with the compression tool that is optimal for that file. The selective compression involves selectively compressing the content or files with the optimal compression tool when at least a threshold amount of space savings is obtained in an acceptable amount of time. Thus, the caching server caches compressed copies of a first set of files compressed with a first compression tool, compressed copies of a second set of files compressed with a different second compression tool, and an uncompressed third set of files.
Opening claim text (preview).
I claim: 1. A method for improving content delivery over a digital network, the method comprising: receiving a plurality of requests directed to a plurality of files at a server; retrieving the plurality of files from a remote origin over the digital network; selecting a first compression from a plurality of compressions for a first set of the plurality of files based on one or more of a first set of file types or a first set of file sizes shared in common by the first set of files, and a different second compression from the plurality of compressions for a different second set of the plurality of files based on one or more of a different second set of file types or a different second set of file sizes shared in common by the second set of files; performing the first compression of the first set of files by the server prior to caching said first set of files in memory of the server; performing the second compression of the second set of files by the server prior to caching said second set of files in the memory of the server; and caching in the memory of the server, the first set of files compressed with the first compression, the second set of files compressed with the second compression, and an uncompressed third set of the plurality of files, wherein at least one of a file type or a file size differs between files of the first set of files, the second set of files, and the third set of files. 2. The method of claim 1 , wherein performing the first compression produces a greater reduction in size of each of the first set of files in less time than the second compression or other compressions from the plurality of compressions, and wherein the second compression produces a greater reduction in size of each of the second set of files in less time than the first compression or other compressions from the plurality of compressions. 3. The method of claim 1 , wherein performing the first compression comprises compressing each particular file of the first set of files with an identifier identifying (i) an original name of the particular file, (ii) an original file extension of the particular file, and (iii) a first compression identifier, and wherein performing the second compression comprises compressing each particular file of the second set of files with an identifier identifying (i) an original name of the particular file, (ii) an original file extension of the particular file, and (iii) a second compression identifier. 4. The method of claim 1 , wherein said selecting further comprises (i) selecting the first compression for the first set of files based on a benchmarking of the first set of file sizes and the first set of file types with the first compression, (ii) selecting the second compression for the second set of files based on a benchmarking of the second set of file sizes and the first set of file types with the second compression, and (iii) selecting no compression for the third set of files based on a benchmarking of a third set of file sizes and a third set of file types, that are shared in common by the third set of files, with the plurality of compressions. 5. The method of claim 1 further comprising: receiving a request for a file in the first set of files after said caching; identifying a compressed instance of said file in the memory; selecting the first compression from the plurality of compressions based on an identifier associated with the compressed instance; decompressing the compressed instance with the first compression; and serving said file without compression after said decompressing. 6. The method of claim 1 further comprising benchmarking the plurality of compressions against different file types and file sizes, wherein the plurality of compressions comprises said first and second compressions. 7. The method of claim 6 , wherein said selecting further comprises selecting the first compression for the first set of files and the second compression for the second set of files based on said benchmarking. 8. The method of claim 6 , wherein said benchmarking comprises identifying compression and decompression times of each compression of the plurality compressions against said different file types and file sizes and identifying a file size reduction produced by each compression. 9. The method of claim 8 , wherein said selecting further comprises selecting an optimal compression from the plurality of compressions for each file type and file size combination based on the compression and decompression times and the file size reduction. 10. The method of claim 1 further comprising: selectively electing compression of a first file from the first set of files based on an expected file size reduction of the first compression and a threshold size reduction; and wherein caching the first set of files compressed with the first compression comprises: caching a copy of the first file compressed with the first compression in response to the expected file size reduction of the first compression being greater than the threshold size reduction; and caching the first file without compression in response to the expected file size reduction of the first compression tool being less than the threshold size reduction. 11. The method of claim 1 further comprising caching a first file of the first set of files into the memory without compression after said caching of the first set of files compressed with the first compression in response to demand for the first file increasing past a demand threshold. 12. The method of claim 1 further comprising caching a first file of the first set of files into the memory without compression after said caching of the first set of files compressed with the first compression in response to processing resources of the particular server falling below a resource threshold. 13. The method of claim 1 further comprising: identifying a number of requests received for a first file of the first set of files over an interval; and wherein caching the first set of files compressed with the first compression comprises: selectively caching a compressed copy of the first file into the memory in response to the number of requests falling below a demand threshold; and selectively caching the first file into the memory without compression in response to the number of requests exceeding said demand threshold. 14. A device comprising: a memory; a non-transitory computer-readable medium storing a set of processor-executable instructions; and one or more processors configured to execute the set of processor-executable instructions, wherein executing the set of processor-executable instructions causes the one or more processors to: receive a plurality of requests directed to a plurality of files; retrieve the plurality of files from a remote origin over a digital network; select a first compression from a plurality of compressions for a first set of the plurality of files based on one or more of a first set of file types or a first set of file sizes shared in common by the first set of files, and a different second compression from the plurality of compressions for a different second set of the plurality of files based on one or more of a different second set of file types or a different second set of file sizes shared in common by the second set of files; perform the first compression of the first set of files prior to caching said first set of files in the memory; perform the second compression of the second set of files by the server prior to caching said second set of files in the memory; and cache in the memory, the first set of files compressed with the first compression, the second set
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Storing data temporarily at an intermediate stage, e.g. caching · CPC title
Protocols for data compression, e.g. ROHC · CPC title
Caching, prefetching or hoarding of files · CPC title
Electricity · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.