Resumable Garbage Collection Using Persistent Bloom Filters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Garbage collection in computer systems can be inefficient when suspended and resumed, leading to incorrect processing of objects written during suspension, resulting in cleaning inefficiencies and loss of previous work due to hash collisions and the need to reinitialize the cleaning process.

Innovation Solution

A resumable garbage collector system that generates data structures based on object unique identifiers, persists suspension information, and uses bloom filters to track deduplicated objects, allowing for seamless resumption of garbage collection without re-executing previous phases.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If garbage collection is suspended and resumed, then system resources can be reallocated, but previous work is lost and reinitialization is required

Engineering Contradiction:
Improvesystem resource allocationVSAvoidreinitialization time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The patent applies preliminary action by persisting the state of processed objects and their hash values before suspension. When garbage collection resumes, the system retrieves this persisted state and continues processing from where it left off, avoiding the need to reinitialize and reprocess already-cleaned objects. This preserves the work done during suspension and eliminates redundant reinitialization overhead.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional garbage collection reprocesses all objects after resumption, then consistency can be maintained, but processing efficiency decreases

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and stores the state information of processed objects (including their hash values and processing status) into persistent storage before suspension. Upon resumption, the system retrieves this extracted state information and uses it to skip already-processed objects, thereby maintaining consistency without reprocessing. This extraction mechanism allows the system to preserve reliability while dramatically improving productivity by avoiding redundant processing of the same objects.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If hash collisions occur during garbage collection, then object identification may be incorrect, but reprocessing is required to ensure accuracy

Engineering Contradiction:
Improveobject identification accuracyVSAvoidreprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent creates and persists a copy of the object state information including hash values before garbage collection suspension. When resuming, the system retrieves these persisted copies and uses them to verify object identities without re-computing hashes from scratch. This copying approach maintains measurement precision by preserving accurate object identification information while reducing reprocessing time, as the system can quickly restore and verify object states from the persisted copies rather than重新计算所有哈希值.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10628298B1Resumable garbage collection
Publication Date: 2020.04.21 EMC IP HLDG CO LLC
  • US10628298B1 patent drawing
  • US10628298B1 patent drawing
  • US10628298B1 patent drawing

AI summary

Generate first data structure based on unique identifiers of objects in object storages. Set indicators in positions in first data structure corresponding to hashes of unique identifiers of active objects in storages. When garbage collection is suspended, store suspension information to persistent storage. Set indicators in second data structure positions corresponding to hashes of unique identifiers of data objects that are deduplicated to storages while garbage collection is suspended. When garbage collection is resumed, retrieve suspension information from persistent storage. Set indicators in positions in first data structure corresponding to hashes of unique identifiers of data objects corresponding to indicators set in second data structure positions. Copy active objects from first object storage to second if number of active objects in first object storage does not satisfy threshold. Reset indicators in first data structure positions corresponding to hashes of unique identifiers of active objects copied to second storage.