Thread-Local Reference Cache for Garbage Collection Overhead

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing garbage collection techniques face challenges in efficiently controlling the amount of memory to be scanned and summarized, particularly in concurrent collection scenarios, leading to increased costs and processing overhead as the size of the heap increases.

Innovation Solution

A cache of modified reference locations, known as a reference cache, is associated with each application thread, which retains precise information about modified memory regions and collapses repeated stores, using a combination of card table and sequential store buffer techniques to reduce unnecessary memory scanning.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If card tables are used to track modified references, then the amount of memory scanned by the collector is reduced, but the processing overhead increases due to examining all card table entries and handling overflow conditions

Engineering Contradiction:
Improveamount of memory scannedVSAvoidprocessing overhead
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent segments the card table into multiple regions: a fixed-size array portion and a variable-size hash table portion. This segmentation allows the system to handle different types of reference modifications efficiently - using the array for direct access and the hash table for overflow conditions, thereby reducing the need to examine all entries while maintaining low processing overhead

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hybrid data structure that combines one-dimensional array indexing with two-dimensional hash table indexing. This dimensional approach allows O(1) access for both common and overflow cases, eliminating the linear scanning overhead of traditional card tables while maintaining space efficiency

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

2Measurement precision

If sequential store buffers are used to track modified references, then precise information about modified locations is maintained, but additional processing is required when buffers become full

Engineering Contradiction:
Improveprecision of modified location informationVSAvoidprocessing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent pre-allocates a fixed-size array portion in the hybrid card table structure, eliminating the need for dynamic resizing or recycling operations. This preliminary allocation ensures that precise tracking of modified locations is maintained without the processing overhead of buffer management, as the structure can accommodate expected overflow conditions without additional processing

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a simplified copy of the sequential store buffer concept within the hybrid card table's array portion, using direct indexing instead of linked lists or dynamic arrays. This copying approach maintains the precision of tracking modified locations while eliminating the complex processing required when buffers become full

Inventive Principle:
Principle #26Copying

3Volume of stationary object

If the heap size increases, then more memory is available for application, but the costs of scanning and processing card tables increase significantly

Engineering Contradiction:
Improveheap sizeVSAvoidcollection processing speed
Core Design Contradiction:
Volume of stationary objectVSProductivity

Solution Approach 1:

The patent implements a dynamic hybrid card table structure where the hash table portion can grow or shrink based on the actual number of dirty cards. This dynamic adaptation allows the system to maintain efficient O(1) access times regardless of heap size, as the structure adjusts to the actual workload rather than being constrained by fixed dimensions

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of card table access from linear scanning to hash-based O(1) access. By transforming the access pattern and using hash functions to directly locate dirty cards, the system maintains constant processing time per card regardless of the total heap size, thereby preserving collection processing speed even as heap capacity increases

Inventive Principle:
Principle #35Parameter changes

4Reliability

If all entries of the card table are examined to determine which cards are dirty, then complete accuracy is achieved, but the time required for examination increases with the number of cards

Engineering Contradiction:
Improveaccuracy of dirty card identificationVSAvoidexamination time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts only the necessary information (dirty card identifiers) from the card table using hash-based indexing, rather than examining all entries. The hash function directly computes the location of dirty cards, extracting precisely the information needed without the time cost of scanning the entire card table structure

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a hash function as an intermediary between the card table structure and the dirty card identification process. This intermediary transforms the lookup operation from a linear scan into a constant-time hash computation, maintaining complete accuracy in identifying dirty cards while dramatically reducing the time required

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7565499B1Method and apparatus for recording modified reference locations in garbage-collected heap memory
Publication Date: 2009.07.21 ORACLE AMERICAN INC
  • US7565499B1 patent drawing
  • US7565499B1 patent drawing
  • US7565499B1 patent drawing

AI summary

In a computer system with a garbage-collected heap memory, a cache of modified reference locations is associated with each application thread. The cache comprises a plurality of reference cache entries that are encoded in one of a plurality of ways. Using a write barrier that operates during a store operation, each application thread records modified references in its associated reference cache. Only when an entry must be evicted to make room for new information or when the thread is suspended is further processing of the reference cache required.