Dynamic Memory Pool Subinstances for Fragmentation Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing memory management mechanisms face challenges in efficiently allocating and deallocating memory for network buffers, leading to fragmentation and suboptimal performance in modern networking equipment due to varying throughput requirements and growing metadata needs.
Innovation Solution
A memory pool allocator dynamically creates and updates memory pool subinstances based on size changes, allowing for efficient allocation and deallocation of memory portions, minimizing fragmentation by associating memory pools with subinstances and managing metadata areas adaptively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If memory is preallocated in fixed-size pools, then allocation speed is improved, but memory fragmentation increases and adaptability to varying throughput requirements deteriorates
Solution Approach 1:
The patent implements dynamic memory pool subinstances that can be created and destroyed based on varying throughput requirements. Instead of fixed static pools, the system dynamically adjusts the number and size of memory subinstances to match current network traffic demands, resolving the contradiction between fast allocation and adaptability.
Solution Approach 2:
The patent divides a large memory pool into multiple smaller subinstances, each handling specific throughput ranges. This segmentation allows the system to allocate memory from the most appropriate subinstance based on current requirements, maintaining both fast allocation speed and adaptability to varying loads.
2Adaptability or versatility
If memory pools are updated to accommodate growing metadata needs, then functionality is improved, but memory fragmentation and performance degradation increase
Solution Approach 1:
The patent segments metadata storage across multiple memory pool subinstances rather than expanding a single pool. Each subinstance maintains its own metadata area, allowing the system to grow metadata capacity by adding subinstances without disrupting existing ones, thus avoiding performance degradation.
Solution Approach 2:
The patent pre-allocates metadata areas within each memory pool subinstance during creation, rather than dynamically expanding metadata areas during operation. This preliminary action prevents fragmentation and performance degradation that would occur with dynamic updates.
3Productivity
If memory is retained for reuse, then allocation efficiency is improved, but memory management complexity increases
Solution Approach 1:
The patent divides memory management into multiple independent subinstance managers, each responsible for a specific memory pool subinstance. This segmentation reduces the complexity of tracking and managing memory reuse by localizing management responsibilities, while still achieving high allocation efficiency through pool-based reuse.
Solution Approach 2:
Each memory pool subinstance maintains its own free list and allocation structures, enabling self-service memory management. When memory is deallocated, it automatically returns to the same subinstance's free pool, simplifying management while maintaining high allocation efficiency.
Data Source
AI summary
A computing system can include memory management capabilities. In one embodiment, the system receives a request to allocate a portion of memory, where the request to allocate the portion of memory comprises a memory pool instance; determines a memory pool subinstance from which to allocate the portion of memory based on the memory pool instance; and obtains the portion of memory from the determined memory pool subinstance.


