Concurrent Memory Compaction and Application Execution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory compaction algorithms in memory systems interfere with application flow, causing performance degradation due to their inability to predict future memory usage and requiring blocking access to compacted objects, leading to inefficient fragmentation management.
Innovation Solution
A system and method that allow software applications to perform operations concurrently with memory compaction by identifying and optimizing memory blocks, modifying application flow to avoid accessing specific data objects during compaction, and utilizing business-related information to manage memory compaction operations, enabling concurrent execution without performance degradation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If memory compaction algorithms block access to data objects during compaction, then memory fragmentation is reduced, but application performance degrades
Solution Approach 1:
The patent segments memory management into two independent parts: (1) memory compaction operations that work on memory blocks, and (2) application operations that work on data objects. By allowing these to proceed concurrently without blocking, the system achieves both fragmentation reduction and maintained application performance. The memory manager performs compaction in the background while applications continue to access their data objects normally.
Solution Approach 2:
The patent introduces an intermediary mapping mechanism that decouples the relationship between data objects and their physical memory block locations. This mapping layer allows the memory manager to relocate memory blocks for compaction purposes without requiring applications to be aware of or blocked by these changes. Applications continue to access data objects through the stable mapping interface while the underlying memory blocks are compacted independently.
2Device complexity
If memory compaction operations are performed independently from application logic, then memory management is simplified, but compaction timing must be estimated rather than optimized
Solution Approach 1:
The patent implements a feedback mechanism where applications provide information about their data object access patterns and timing requirements to the memory manager. The memory manager uses this feedback to intelligently determine when to perform compaction operations on specific memory blocks, optimizing compaction timing based on actual application behavior rather than using fixed estimates. This allows compaction to occur at optimal moments without disrupting application performance.
3Quantity of substance
If data objects are relocated during memory compaction, then free space is consolidated, but application access to relocated objects is disrupted
Solution Approach 1:
The patent introduces an intermediary mapping mechanism that decouples the relationship between data objects and their physical memory block locations. This mapping layer allows the memory manager to relocate memory blocks for compaction purposes without requiring applications to be aware of or blocked by these changes. Applications continue to access data objects through the stable mapping interface while the underlying memory blocks are compacted independently.
Data Source
AI summary
A system, method, and computer program product are provided for performing software application operations concurrently with memory compaction operations. In use, one or more memory blocks to optimize utilizing a memory compaction operation are identified. Additionally, one or more data objects associated with the one or more memory blocks are identified, the one or more data objects being a portion of a plurality of data objects in a memory capable of being access by a software application. Further, the memory compaction operation is initiated utilizing a request including business related information associated with the one or more data objects. Moreover, an application flow of the software application is modified such that the one or more data objects are not accessed by the software application during the memory compaction operation, and the plurality of objects not associated with the one or more memory blocks are capable of being accessed by the software application during the memory compaction operation and are not processed as part of the memory compaction operation.


