Managed memory cache with application-layer prefetching

US9535843B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9535843-B2
Application numberUS-201514624168-A
CountryUS
Kind codeB2
Filing dateFeb 17, 2015
Priority dateFeb 17, 2015
Publication dateJan 3, 2017
Grant dateJan 3, 2017

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.

In order to prevent data thrashing and the resulting performance degradation, a computer system may maintain an application-layer cache space to more effectively use physical memory and, thus, significantly improve an application-memory hit ratio and reduce disk input-output operations. In particular, the computer system may maintain a managed memory cache that is separate from a page cache. The managed memory cache may be managed according to predefined caching rules that are separate from the caching rules in the operating system that are used to manage the page cache, and these caching rules may be application-aware. Subsequently, when data for an application is accessed, the computer system may prefetch the data and associated information from disk and store the information in the managed memory cache based on data correlations associated with the application.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for prefetching information, the method comprising: creating a managed memory cache that is separate from a page cache, wherein the managed memory cache is managed according to predefined caching rules that are separate from the operating-system rules that are used to manage the page cache, wherein the predefined caching rules include application-aware caching rules, wherein cache size of the managed memory cache are dynamically determined based on data-access patterns of the data entries, and wherein dynamically determining the cache size of the managed memory cache comprises determining whether to grow or to shrink the managed memory cache based on a metric that measures cache-hits for previously cached data that are subsequently removed from the managed memory cache; and prefetching the information from another memory and storing the additional information in the managed memory cache based on data correlations associated with an application executed in an environment of the operating system on the computer. 2. The method of claim 1 , wherein the method further comprises storing additional information in the managed memory cache based on the predefined rules. 3. The method of claim 2 , wherein the additional information is stored in the managed memory cache when a cache-miss occurs. 4. The method of claim 2 , wherein storing the additional information involves replacing second information stored in the managed memory cache; and wherein the second information is replaced based on data-access patterns associated with the application. 5. The method of claim 2 , wherein the method further comprises maintaining second information in the managed memory cache when storing the additional information; and wherein the second information is maintained based on data-access patterns associated with the application. 6. The method of claim 1 , wherein the method further comprises merging adjacent data entries in the managed memory cache into a single data entry based on data-access patterns associated with the application. 7. The method of claim 1 , wherein the method further comprises separating a data entry into two or more data entries in the managed memory cache based on data-access patterns associated with the application. 8. The method of claim 1 , wherein at least one of data entries in the managed memory cache has a page size that is smaller than a minimum page size of the page cache; and wherein at least some of the data entries in the managed memory cache have different page sizes. 9. The method of claim 8 , wherein the page size of at least the one of the data entries in the managed memory cache is 1 byte. 10. The method of claim 8 , wherein at least some of the data entries have different associated predefined caching rules. 11. The method of claim 8 , wherein the page sizes of the data entries are dynamically determined based on data-access patterns of the data entries associated with at least the application. 12. The method of claim 1 , wherein the managed memory cache is implemented in virtual memory. 13. The method of claim 1 , wherein the managed memory cache is implemented in physical memory. 14. The method of claim 1 , wherein the predefined caching rules are associated with a library that is called by the application. 15. The method of claim 1 , wherein the data entries in the managed memory cache are organized based on a hash table. 16. An apparatus, comprising: one or more processors; memory; and a program module, wherein the program module is stored in the memory and, during operation of the apparatus, is executed by the one or more processors to prefetch information, the program module including: instructions for creating a managed memory cache that is separate from a page cache, wherein the managed memory cache is managed according to predefined caching rules that are separate from operating-system rules that are used to manage the page cache, wherein the predefined caching rules include application-aware caching rules, wherein page sizes of data entries within the managed memory cache are dynamically determined based on data-access patterns of the data entries, and wherein dynamically determining the cache size of the managed memory cache comprises determining whether to grow or to shrink the managed memory cache based on a metric that measures cache-hits for previously cached data that are subsequently removed from the managed memory cache; and instructions for prefetching the information from another memory and storing the additional information in the managed memory cache based on data correlations associated with an application executed in an environment of the operating system on the apparatus. 17. The apparatus of claim 16 , wherein the managed memory cache is implemented in one of: virtual memory; and physical memory. 18. The apparatus of claim 16 , wherein the predefined caching rules include application-aware caching rules. 19. The apparatus of claim 16 , wherein at least one of data entries in the managed memory cache has a page size that is smaller than a minimum page size of the page cache; and wherein the page sizes of the data entries are dynamically determined based on data-access patterns of the data entries associated with at least the application. 20. A system, comprising: a processing module comprising a non-transitory computer-readable medium storing instructions that, when executed, cause the system to: create a managed memory cache that is separate from a page cache, wherein the managed memory cache is managed according to predefined caching rules that are separate from operating-system rules that are used to manage the page cache, wherein the predefined caching rules include application-aware caching rules, wherein page sizes of data entries within the managed memory cache are dynamically determined based on data-access patterns of the data entries, and wherein dynamically determining the cache size of the managed memory cache comprises determining whether to grow or to shrink the managed memory cache based on a metric that measures cache-hits for previously cached data that are subsequently removed from the managed memory cache; and prefetch the information from another memory and store the additional information in the managed memory cache based on data correlations associated with an application executed in an environment of the operating system on the computer.

Assignees

Inventors

Classifications

  • Hit rate improvement · CPC title

  • with prefetch · CPC title

  • Details relating to cache prefetching · CPC title

  • Prefetching based on access pattern detection, e.g. stride based prefetch · 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 US9535843B2 cover?
In order to prevent data thrashing and the resulting performance degradation, a computer system may maintain an application-layer cache space to more effectively use physical memory and, thus, significantly improve an application-memory hit ratio and reduce disk input-output operations. In particular, the computer system may maintain a managed memory cache that is separate from a page cache. Th…
Who is the assignee on this patent?
Linkedin Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0862. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 03 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).