Dynamic Memory Allocation Between Overlapping Containers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional data storage systems using multiple containers face limitations in dynamic memory allocation, leading to inefficient thrashing or downtime due to fixed memory assignments at initialization time.
Innovation Solution
Implementing a method where multiple containers share an overlapping memory area, allowing dynamic claiming and releasing of memory portions through page assignment metadata and indirect page mapping, with cooperative budgeting to adjust memory allocation based on needs.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If memory resources are assigned at initialization time in conventional container implementations, then container isolation and reduced overhead are achieved, but dynamic memory allocation capability is lost
Solution Approach 1:
The patent implements dynamic memory allocation by allowing containers to claim and release memory pages at runtime through a host-mediated mechanism. The memory assignment is no longer static but changes dynamically based on container needs, resolving the contradiction between fixed assignment simplicity and dynamic allocation flexibility.
Solution Approach 2:
The host system acts as an intermediary between containers and physical memory resources. The host manages the shared memory space and mediates container claims and releases, enabling dynamic allocation while maintaining isolation. This intermediary mechanism allows containers to benefit from both reduced overhead and dynamic adaptability.
2Productivity
If one container requires more memory than initially assigned, then memory efficiency improves, but system stability deteriorates due to virtual memory thrashing
Solution Approach 1:
Containers can dynamically claim additional memory pages from the shared pool when needed and release them when no longer required. This dynamic adjustment prevents virtual memory thrashing while improving memory utilization efficiency, as containers can adapt their memory usage to actual needs without system instability.
3Adaptability or versatility
If memory allocation is updated by restarting containers, then proper memory amounts are assigned, but service continuity is interrupted causing downtime
Solution Approach 1:
The patent enables memory allocation updates without container restart by implementing runtime claim and release operations. Containers can adjust their memory assignments dynamically while running, eliminating service downtime while achieving proper memory allocation accuracy.
Solution Approach 2:
The host pre-allocates a shared memory space that containers can claim as needed. This preliminary preparation of memory resources allows containers to obtain proper memory amounts on-demand without restart, preventing service interruption while ensuring adequate memory allocation.
4Reliability
If fixed memory portions are assigned to containers, then memory isolation is maintained, but memory sharing and dynamic allocation are prevented
Solution Approach 1:
The host system serves as an intermediary that maintains memory isolation between containers while enabling sharing through a controlled claim-release mechanism. The host manages the shared memory space and enforces isolation boundaries, allowing containers to share memory resources dynamically without compromising security or stability.
Solution Approach 2:
The patent transforms fixed memory assignments into dynamic, controllable sharing. Containers can claim memory pages from the shared pool and release them when done, with the host mediating access. This dynamic mechanism maintains isolation through controlled access while enabling efficient memory sharing and allocation.
Data Source
AI summary
Techniques are presented for dynamically allocating memory between containers. These techniques include (a) assigning a first portion of memory to a first container and a second portion of memory to a second container, the first and second portions overlapping to form a shared portion of memory assigned to both containers; (b) during a first interval, caching first data in a particular page of the shared portion by first data storage software executing within the first container; (c) during a second interval, caching second data in the particular page of the shared portion by second data storage software executing within the second container; (d) during the first interval, selectively enabling the first data storage software to access the particular page and blocking the second data storage software from accessing the particular page; and (e) during the second interval, selectively enabling the second data storage software to access the particular page and blocking the first data storage software from accessing the particular page.


