Concurrent Marking Garbage Collection CAS Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Garbage Collection (GC) methods, such as Open Java Development Kit (OJDK) Garbage First (G1) GC, require expensive Compare-And-Swap (CAS) operations to update a single bit in a bitmap, which is inefficient for concurrent marking processes.

Innovation Solution

The method identifies live objects within the same block in a bitmap and updates multiple bits simultaneously using a single CAS operation, reducing the need for multiple atomic updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a single bit in the bitmap is updated using a CAS operation to ensure atomicity in concurrent marking, then thread safety is improved, but the operation becomes expensive and reduces overall GC performance

Engineering Contradiction:
Improvethread safetyVSAvoidGC performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent merges multiple individual bit updates into a single block update operation. Instead of performing separate CAS operations for each bit that needs to be marked, the invention groups bits into blocks and updates entire blocks atomically, thereby reducing the total number of CAS operations from N (number of bits) to M (number of blocks), where M << N.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the bitmap into multiple blocks, where each block contains multiple bits. This segmentation allows the system to operate at the block level rather than the individual bit level, enabling more efficient atomic operations. The bitmap is divided into blocks that can be independently updated, reducing contention and improving parallelism in concurrent marking.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If multiple threads update the same block simultaneously in the bitmap, then concurrent marking is enabled, but the need for atomic CAS operations increases and reduces efficiency

Engineering Contradiction:
Improveconcurrent marking capabilityVSAvoidmarking efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent combines multiple thread updates targeting the same block into a single atomic block-level CAS operation. By merging the update granularity from bit-level to block-level, the system reduces the frequency of CAS operations while maintaining concurrent access safety, thereby improving marking efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent changes the dimension of atomic operations from individual bits (0-dimensional) to blocks containing multiple bits (higher-dimensional). This dimensional change allows multiple bits to be updated simultaneously in a single atomic operation, reducing the overhead of concurrent access control and improving overall marking performance.

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

Data Source

PatentUS11687449B2Concurrent marking garbage collection
Publication Date: 2023.06.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11687449B2 patent drawing
  • US11687449B2 patent drawing
  • US11687449B2 patent drawing

AI summary

A computer-implemented method is provided for reducing Compare And Swap (CAS) operations in a concurrent marking Garbage Collection (GC) process that operates on objects corresponding to a bit map of multiple blocks. The method includes finding, from among the objects, live objects that belong to a same block in the bit map from among the multiple blocks when traversing object trees of the objects for GC marking. The method further includes loading a latest value of the same block from the bitmap, updating the latest value by setting corresponding marking bits in the bit map, and updating the same block in the bit map with a single CAS operation.