Dynamic Page Allocator Forking and Merging for Scalability
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current page allocation schemes in multi-core environments face scalability issues due to memory fragmentation and overhead in communication between page allocators, with global allocators minimizing fragmentation but deteriorating in scalability, and local allocators ensuring concurrency but experiencing page imbalances and fragmentation.
Innovation Solution
A system and method for dynamically changing page allocators by forking or merging them based on system state, using a coordinator to determine when to fork child allocators during high workload or low free memory conditions and merge when communication overhead or low workload occurs, allowing for adaptive page allocation between global and local schemes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If a global page allocation scheme is used, then memory fragmentation is minimized, but scalability for page allocation requests deteriorates
Solution Approach 1:
The patent segments the global page allocator into multiple local page allocators, each managing a specific region or subset of pages. This segmentation allows parallel processing of allocation requests across different allocators, improving scalability while maintaining overall memory management coherence through a coordinator that monitors system state and orchestrates operations.
Solution Approach 2:
The patent implements a dynamic page allocation system where the structure can adapt between global and local allocation modes based on system state. The coordinator monitors metrics such as free memory size, allocation request rates, and system load, dynamically switching between centralized global management and distributed local management to optimize both fragmentation control and scalability under different conditions.
2Productivity
If a local page allocation scheme is used, then concurrency for page allocation requests is improved, but page fragmentation occurs among allocators
Solution Approach 1:
The patent introduces a coordinator as an intermediary component between local page allocators and the global memory management system. The coordinator mediates communication and coordination between allocators, monitoring system state and orchestrating operations to prevent fragmentation while maintaining the concurrency benefits of distributed allocation. It acts as a central coordination point that resolves conflicts and balances page distribution.
3Productivity
If multiple page allocators are used, then scalability is improved, but communication overhead between allocators increases
Solution Approach 1:
The patent implements self-service mechanisms where local page allocators autonomously manage their own page pools and allocation requests without requiring constant coordination. Each allocator independently processes allocation and deallocation operations within its scope, only communicating with the coordinator when system state changes require rebalancing or when global coordination is necessary, thereby minimizing communication overhead while maintaining scalability.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method and a system of dynamically changing a page allocator are provided. The method includes determining a state of a page allocation system; and forking a child page allocator from a parent page allocator, or merging a child page allocator into a parent page allocator, based on the determination.