Methods and mechanisms for proactive memory management
First Claim
1. A tangible computer-readable storage medium having computer-executable instructions stored thereon, which, when executed, perform steps for fetching data from a storage location into memory based on a ranking of an estimated utility for the data, comprising:
- observing a need for page data to be stored in memory;
determining values for the page data based on the observed need for the page data, each value representative of the observed need for that page data and independent of any physical memory location; and
loading at least some of the page data into the memory in a prioritized manner based on the determined values for the page data.
2 Assignments
0 Petitions
Accused Products
Abstract
A proactive, resilient and self-tuning memory management system and method that result in actual and perceived performance improvements in memory management, by loading and maintaining data that is likely to be needed into memory, before the data is actually needed. The system includes mechanisms directed towards historical memory usage monitoring, memory usage analysis, refreshing memory with highly-valued (e.g., highly utilized) pages, I/O pre-fetching efficiency, and aggressive disk management. Based on the memory usage information, pages are prioritized with relative values, and mechanisms work to pre-fetch and/or maintain the more valuable pages in memory. Pages are pre-fetched and maintained in a prioritized standby page set that includes a number of subsets, by which more valuable pages remain in memory over less valuable pages. Valuable data that is paged out may be automatically brought back, in a resilient manner. Benefits include significantly reducing or even eliminating disk I/O due to memory page faults.
-
Citations
22 Claims
-
1. A tangible computer-readable storage medium having computer-executable instructions stored thereon, which, when executed, perform steps for fetching data from a storage location into memory based on a ranking of an estimated utility for the data, comprising:
-
observing a need for page data to be stored in memory; determining values for the page data based on the observed need for the page data, each value representative of the observed need for that page data and independent of any physical memory location; and loading at least some of the page data into the memory in a prioritized manner based on the determined values for the page data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-implemented method for efficiently transferring units of data corresponding approximately to a size of a memory page, or page data, from a storage location to a memory location, and vice versa, based on a determined priority for the page data, comprising:
-
observing a need for one or more sets of page data, to be stored in memory; determining values for the page data, each value based on the observed need for the corresponding set of page data and independent of any physical memory location; associating the determined values with the page data; and determining what of the one or more sets of page data to load from a storage location into the memory based on the determined values associated with the one or more sets of page data. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. In a computerized system comprising a memory that is subdivided into one or more page locations, or memory pages, a method of transferring data, or page data, from one or more storage locations to one or more page locations based on one or more value determinations of the page data, such that high priority data are accessible from the one or more memory pages before they are needed, comprising:
-
identifying data stored that are stored in one or more pages of memory; observing, via a tracing mechanism, one or more memory-related activities for the data, and logging results of the observation into an information database, wherein the information database includes information observed for present and prior memory activities on the identified data; prioritizing the identified data into a prioritization list based on the observations logged in the information database, wherein the prioritization list subdivides the data into a plurality of page data sets each having a unique prioritization value; and replacing lower value page data in the one or more memory pages with higher value page data. - View Dependent Claims (22)
-
Specification