On-Heap Huge Slab Allocator for Garbage Collection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current memory management systems, particularly in virtual machines, face limitations with Garbage Collection when dealing with huge memory spaces, leading to inefficiencies and fragmentation, prompting the use of Off-Heap processing, which lacks direct support in most virtual machines and requires native code interaction.

Innovation Solution

An On-Heap slab allocator is implemented, creating an array of pages with serialized data in a garbage collector-managed area, allowing for efficient memory allocation and reuse, minimizing Garbage Collector intervention and fragmentation, by breaking down memory into chunks and using serialization techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If Garbage Collection manages huge memory spaces, then automatic resource management is improved, but Garbage Collector performance deteriorates due to exponential walking time

Engineering Contradiction:
Improveautomatic resource managementVSAvoidGarbage Collector walking time
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

The patent segments the huge memory space into fixed-size memory blocks with block headers containing metadata. This segmentation allows the Garbage Collector to efficiently traverse only active blocks rather than walking through entire memory spaces, reducing collection time while maintaining automatic management of huge memory regions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-allocating and initializing memory blocks with headers before use. Blocks are pre-configured with metadata structures that enable efficient Garbage Collector traversal, so when collection occurs, the GC can immediately identify and process only relevant blocks without exponential walking time.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If memory is allocated dynamically, then flexibility is improved, but memory fragmentation worsens

Engineering Contradiction:
Improvememory allocation flexibilityVSAvoidmemory fragmentation
Core Design Contradiction:
Adaptability or versatilityVSStability of the object's composition

Solution Approach 1:

The patent divides memory into fixed-size blocks with standardized headers, creating a segmented structure that maintains flexibility through block-level management while preventing fragmentation through uniform block boundaries. This segmentation allows efficient tracking and allocation without the irregular fragmentation patterns of traditional dynamic allocation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements efficient memory recovery by tracking freed blocks through headers and enabling immediate reuse. When blocks are released, their metadata is updated to indicate availability, allowing the allocator to quickly assign them to new allocations without creating fragmentation gaps, thus maintaining stable memory composition.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If Off-Heap processing is used for huge memory spaces, then Garbage Collector overhead is reduced, but system complexity increases due to native code requirements

Engineering Contradiction:
ImproveGarbage Collector efficiencyVSAvoidnative code integration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a universal memory management system that operates within the managed heap but provides Off-Heap-like capabilities for huge memory spaces. The slab allocator and block header structure enable efficient management of large memory regions while remaining fully compatible with the virtual machine's Garbage Collector, eliminating the need for separate native code paths.

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

Solution Approach 2:

The patent introduces memory block headers as intermediaries between the Garbage Collector and huge memory spaces. These headers contain metadata that enables the GC to efficiently track and manage large memory regions without requiring direct native code intervention, serving as a mediator that maintains GC efficiency while simplifying the system architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9753850B1On-heap huge slab allocator
Publication Date: 2017.09.05 HAZELCAST INC
  • US9753850B1 patent drawing
  • US9753850B1 patent drawing
  • US9753850B1 patent drawing

AI summary

A non-volatile computer memory has instructions executed by a processor to create an array of pages, where each page is configured with individual chunks of memory to receive serialized data. The array of pages is positioned as an on-heap slab of at least 200 GB in a garbage collector managed area of a virtual machine memory.