System and method for cache management

US9405684B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9405684-B1
Application numberUS-201213630678-A
CountryUS
Kind codeB1
Filing dateSep 28, 2012
Priority dateSep 28, 2012
Publication dateAug 2, 2016
Grant dateAug 2, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method, computer program product, and computing system for processing, on a host, a read request for a portion of a data file stored on a backend storage system. The portion of the data file is obtained from the backend storage system. The portion of the data file is divided into a plurality of file chunks based, at least in part, upon a file type. Each of the plurality of file chunks is compared to other file chunks stored within a frontend cache system associated with the host to identify unique file chunks within the plurality of file chunks. The unique file chunks are stored within the frontend cache system.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method comprising: processing, on a host, a read request received from a client application separate from the host for a portion of a data file stored on a backend storage system, wherein the host is a server computer; obtaining the portion of the data file from the backend storage system; dividing the portion of the data file into a plurality of file chunks based, at least in part, upon a file type, wherein dividing the portion of the data file into a plurality of file chunks includes dividing the portion of the data file into a plurality of file chunks based, at least in part, upon a sticky bit algorithm, wherein the sticky bit algorithm is configured to calculate a hash value for a set amount of consecutive bytes of each data chunk, the sticky bit algorithm being further configured to identify a cut point associated with each data chunk, wherein the cut point is artificially created if the hash value modulo a constant is not zero for each data chunk; comparing each of the plurality of file chunks to other file chunks stored within a first cache system located within the host to identify unique file chunks within the plurality of file chunks; and storing the unique file chunks within the first cache system. 2. The computer-implemented method of claim 1 wherein comparing each of the plurality of file chunks to other file chunks stored within the first cache system includes: identifying non-unique file chunks within the plurality of file chunks. 3. The computer-implemented method of claim 2 further comprising: not storing the non-unique file chunks within the first cache system. 4. The computer-implemented method of claim 1 wherein the portion of the data file is a complete data file. 5. The computer-implemented method of claim 1 wherein the plurality of file chunks have a common length and are aligned. 6. The computer-implemented method of claim 1 wherein the plurality of file chunks have differing lengths. 7. The computer-implemented method of claim 1 wherein the backend storage system includes a data array. 8. A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising: processing, on a host, a read request received from a client application separate from the host for a portion of a data file stored on a backend storage system, wherein the host is a server computer; obtaining the portion of the data file from the backend storage system; dividing the portion of the data file into a plurality of file chunks based, at least in part, upon a file type, wherein dividing the portion of the data file into a plurality of file chunks includes dividing the portion of the data file into a plurality of file chunks based, at least in part, upon a sticky bit algorithm, wherein the sticky bit algorithm is configured to calculate a hash value for a set amount of consecutive bytes of each data chunk, the sticky bit algorithm being further configured to identify a cut point associated with each data chunk, wherein the cut point is artificially created if the hash value modulo a constant is not zero for each data chunk; comparing each of the plurality of file chunks to other file chunks stored within a first cache system located within the host to identify unique file chunks within the plurality of file chunks; and storing the unique file chunks within the first cache system. 9. The computer program product of claim 8 wherein the instructions for comparing each of the plurality of file chunks to other file chunks stored within the first cache system include instructions for: identifying non-unique file chunks within the plurality of file chunks. 10. The computer program product of claim 9 further comprising instructions for: not storing the non-unique file chunks within the first cache system. 11. The computer program product of claim 8 wherein the portion of the data file is a complete data file. 12. The computer program product of claim 8 wherein the plurality of file chunks have a common length and are aligned. 13. The computer program product of claim 8 wherein the plurality of file chunks have differing lengths. 14. The computer program product of claim 8 wherein the backend storage system includes a data array. 15. A computing system comprising: at least one processor device; and at least one memory architecture coupled with the at least one processor device; wherein the at least one processor device is further configured to perform operations comprising; processing, on a host, a read request received from a client application separate from the host for a portion of a data file stored on a backend storage system, wherein the host is a server computer; obtaining the portion of the data file from the backend storage system; dividing the portion of the data file into a plurality of file chunks based, at least in part, upon a file type, wherein dividing the portion of the data file into a plurality of file chunks includes dividing the portion of the data file into a plurality of file chunks based, at least in part, upon a sticky bit algorithm, wherein the sticky bit algorithm is configured to calculate a hash value for a set amount of consecutive bytes of each data chunk, the sticky bit algorithm being further configured to identify a cut point associated with each data chunk, wherein the cut point is artificially created if the hash value modulo a constant is not zero for each data chunk; comparing each of the plurality of file chunks to other file chunks stored within a first cache system located within-the host to identify unique file chunks within the plurality of file chunks; and storing the unique file chunks within the first cache system. 16. The computing system of claim 15 wherein comparing each of the plurality of file chunks to other file chunks stored within the first cache system includes: identifying non-unique file chunks within the plurality of file chunks. 17. The computing system of claim 16 further configured to perform operations comprising: not storing the non-unique file chunks within the first cache system. 18. The computing system of claim 15 wherein the portion of the data file is a complete data file. 19. The computing system of claim 15 wherein the plurality of file chunks have a common length and are aligned. 20. The computing system of claim 15 wherein the plurality of file chunks have differing lengths. 21. The computing system of claim 15 wherein the backend storage system includes a data array. 22. The computer-implemented method of claim 1 wherein the cut point is artificially created based, at least in part, upon an addition of one or more bytes in each data chunk. 23. The computer program product of claim 8 wherein the cut point is artificially created based, at least in part, upon an addition of one or more bytes in each data chunk. 24. The computing system of claim 15 wherein the cut point is artificially created based, at least in part, upon an addition of one or more bytes in each data chunk.

Assignees

Inventors

Classifications

  • G06F3/0611Primary

    in relation to response time · CPC title

  • Digital input from, or digital output to, record carriers {, e.g. RAID, emulated record carriers or networked record carriers} · CPC title

  • G06F12/08Primary

    in hierarchically structured memory systems, e.g. virtual memory systems · CPC title

  • Physics · mapped topic

  • Allocation or management of cache space · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9405684B1 cover?
A method, computer program product, and computing system for processing, on a host, a read request for a portion of a data file stored on a backend storage system. The portion of the data file is obtained from the backend storage system. The portion of the data file is divided into a plurality of file chunks based, at least in part, upon a file type. Each of the plurality of file chunks is comp…
Who is the assignee on this patent?
Emc Corp
What technology area does this patent fall under?
Primary CPC classification G06F3/0611. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 02 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).