Hybrid Garbage Collection for Memory Fragmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing garbage collection methods in computer systems face challenges in efficiently managing memory fragmentation and reclaiming memory in multitasking environments, leading to potential memory leaks and large memory footprints due to errors in manual memory reclamation and limitations in addressing fragmentation.

Innovation Solution

A hybrid garbage collection method that combines a mark-and-sweep approach with selective evacuation of old regions, where live objects are copied to new regions, and the entire old region is freed, allowing memory to be made available only to the specific application or all applications, thereby addressing fragmentation and minimizing costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual memory reclamation is used, then developers have control over memory management, but errors occur leading to memory leaks and large memory footprints

Engineering Contradiction:
Improvememory management reliabilityVSAvoidmemory footprint
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system implements automated garbage collection that performs memory reclamation without developer intervention. The garbage collector autonomously identifies dead objects through graph traversal and reclaims their memory, eliminating errors from manual management while reducing memory footprint through systematic cleanup.

Inventive Principle:
Principle #25Self-service

2Productivity

If traditional garbage collection is used, then memory reclamation is automated, but fragmentation occurs reducing collection efficiency

Engineering Contradiction:
Improvegarbage collection efficiencyVSAvoidmemory fragmentation
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The memory heap is divided into multiple regions including old regions and free region pools. The garbage collector selectively evacuates fragmented old regions to new regions allocated from free region pools, segmenting the problem to address fragmentation while maintaining collection efficiency through targeted rather than universal evacuation.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If old regions are evacuated to reduce fragmentation, then memory is reclaimed, but the cost of copying live objects increases

Engineering Contradiction:
Improvereclaimed memoryVSAvoidcopying cost
Core Design Contradiction:
Quantity of substanceVSLoss of energy

Solution Approach 1:

The garbage collector applies different treatments to different regions based on their fragmentation characteristics. Only old regions exceeding fragmentation thresholds are evacuated to new regions, while less fragmented regions undergo mark-and-sweep. This local differentiation reduces unnecessary copying operations while still reclaiming memory from highly fragmented regions.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

Instead of evacuating all old regions uniformly, the system performs partial evacuation only on regions that exceed fragmentation thresholds. This selective approach avoids the excessive copying cost of universal evacuation while still achieving memory reclamation where it is most needed.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7953711B2Method and system for hybrid garbage collection of multi-tasking systems
Publication Date: 2011.05.31 ORACLE AMERICAN INC
  • US7953711B2 patent drawing
  • US7953711B2 patent drawing
  • US7953711B2 patent drawing

AI summary

In general, the invention relates to a method for garbage collection. The method includes examining old regions to obtain a mark bitmap, a connectivity matrix, and fragmentation information, where the mark bitmap describes marked words and unmarked words for the old regions. The method further includes identifying a fragmented region in the old regions based on the fragmentation information, where the fragmented region includes at least one of the marked words. The method further includes copying the at least one of the marked words to a new region allocated from a pool of free regions, designating each of the unmarked words not in the fragmented region as free, adjusting a cross-region reference to the fragmented region in the marked words to point to the new region based on the connectivity matrix, and adding the fragmented region to the pool of free regions.