Polymorphic Allocator Table for Memory Overhead Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing polymorphic allocators are memory-consuming and design-utility limiting due to overhead costs, particularly when dealing with large numbers of 32-byte data entries, as they require storing allocator references with each instance, leading to inefficient memory usage and fragmentation issues.

Innovation Solution

A polymorphic allocator system that allocates memory in a type-nondiscriminatory manner, using a customized allocator to efficiently manage 32-byte data entries by storing instances without allocator references and employing a table-based approach to identify allocators, allowing for bulk memory allocation and self-destruction of data buffer instances, thereby minimizing overhead and optimizing memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If polymorphic allocators store allocator references with each instance, then they can identify the responsible allocator for deallocation, but memory overhead increases significantly

Engineering Contradiction:
Improveallocator identificationVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent introduces an intermediary mechanism (allocator table with page index mapping) that decouples the direct relationship between instances and allocators. Instead of storing full allocator references in each instance, the system uses compact page indexes as intermediaries to look up allocator information, reducing memory overhead while maintaining reliable allocator identification.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent transitions from storing allocator references directly in instances to using a two-dimensional indexing structure: page addresses are mapped to page indexes, which then map to allocator identifiers. This dimensional transformation allows efficient allocator identification without the memory cost of direct instance-allocator references.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If polymorphic allocators use customized allocators for specific data types, then allocation efficiency improves, but device complexity increases

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

Solution Approach 1:

The patent creates a universal allocator management system that handles multiple allocator types through a common interface and unified data structures. The allocator table and page index mechanism work consistently across different allocator implementations, allowing customized allocators to maintain high allocation efficiency while the overall system complexity is managed through standardized procedures.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent segments the allocator management into distinct components: page allocation, page indexing, and allocator identification. This segmentation allows customized allocators to operate efficiently at their level while the overall system complexity is distributed and managed through modular, independent components rather than a monolithic complex system.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If polymorphic allocators manage large numbers of small data entries, then they can handle diverse data types, but memory fragmentation increases

Engineering Contradiction:
Improvedata type handlingVSAvoidmemory fragmentation
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent segments memory management into page-level units, where each page is independently tracked and managed. This segmentation allows the system to handle diverse data types across multiple pages while maintaining stable memory composition at the page level, reducing fragmentation by enabling precise control over memory allocation and deallocation boundaries.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11436135B2Polymorphic allocators in an operating system
Publication Date: 2022.09.06 ARISTA NETWORKS INC
  • US11436135B2 patent drawing
  • US11436135B2 patent drawing
  • US11436135B2 patent drawing

AI summary

Systems and methods for implementing polymorphic allocators in an operating system are disclosed. An illustrative method includes a method of allocating memory space in a memory by creating a first allocator. In response to receiving a first request to allocate memory space in the memory for a data buffer instance using the first allocator, the method allocates one or more pages of a first region in the memory by populating one or more entries of an allocator table. The one or more entries of the allocator table correspond to the one or more pages of the first region. The entries of the allocator table are indexed by page indexes corresponding to page addresses identifying the pages of the first region in the memory. Each of the populated entries of the allocator table includes a specific allocator identifier identifying a corresponding allocator to that entry.