Dynamic Memory Pool Subinstances for Fragmentation Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveallocation speedVSAvoidadaptability to throughput requirements
Core Design Contradiction:
SpeedVSAdaptability or versatility

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If memory pools are updated to accommodate growing metadata needs, then functionality is improved, but memory fragmentation and performance degradation increase

Engineering Contradiction:
Improvemetadata capacityVSAvoidperformance stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If memory is retained for reuse, then allocation efficiency is improved, but memory management complexity increases

Engineering Contradiction:
Improveallocation efficiencyVSAvoidmemory management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12417169B2Dynamically allocating memory pool subinstances
Publication Date: 2025.09.16 RED HAT INC
  • US12417169B2 patent drawing
  • US12417169B2 patent drawing
  • US12417169B2 patent drawing

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.