Compressed Store Manager Memory Commit Charge Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
As computer programs become more complex, they require increased amounts of memory, leading to higher costs due to the need for additional computer memory, and existing memory management techniques do not effectively reduce memory commit charges during compression, limiting system efficiency.
Innovation Solution
A system that identifies modified memory pages allocated to a program, compresses them into a compressed store managed by a compressed store manager, allowing the memory manager to repurpose these pages while using the memory commit charge for the compressed pages to conserve memory commit, thereby reducing the need for additional memory allocation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory pages are compressed into a compressed store, then the amount of physical memory required is reduced, but the memory commit charge increases due to the need for additional memory allocation for compression operations
Solution Approach 1:
A compression manager is introduced as an intermediary component that manages the compression store and handles commit charge allocation separately from the main memory manager. This intermediary structure allows compression operations to proceed without increasing the overall system commit charge, as the compression manager can allocate and manage commit charge resources independently for compressed pages.
Solution Approach 2:
The system changes the state of memory pages from uncompressed to compressed, altering their physical representation while maintaining logical integrity. By transforming pages into a compressed format within the compression store, the system reduces physical memory footprint while the parameter management system tracks and adjusts commit charge allocation to reflect the compressed state rather than treating compressed pages as additional memory commitments.
2Adaptability or versatility
If more computer memory is included to support complex programs, then program functionality increases, but the cost of the computer system increases
Solution Approach 1:
The system changes the density and organization of stored information through compression, allowing more data to be stored in the same physical memory space. This parameter transformation enables complex programs to run without requiring additional physical memory, as the compression store efficiently packs memory pages to maximize utilization of available memory resources.
Solution Approach 2:
The compression store is implemented as a nested structure where compressed memory pages are stored within allocated memory regions. This nesting allows the system to create virtual layers of memory management, where the compression store sits within the overall memory architecture, providing additional storage capacity without requiring external memory expansion.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A set of memory pages from a working set of a program process, such as at least some of the memory pages that have been modified, are compressed into a compressed store prior to being written to a page file, after which the memory pages can be repurposed by a memory manager. The memory commit charge for the memory pages compressed into the compressed store is borrowed from the program process by a compressed storage manager, reducing the memory commit charge of the compressed storage manager. Subsequent requests from the memory manager for memory pages that have been compressed into a compressed store are satisfied by accessing the compressed store memory pages (including retrieving the compressed store memory pages from the page file if written to the page file), decompressing the requested memory pages, and returning the requested memory pages to the memory manager.