Tracing Garbage Collector for MVCC Search Trees

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing garbage collection methods for search trees under multi-version concurrency control are inefficient and risk reclaiming storage capacity still in use, particularly in distributed storage systems, where incremental garbage collectors are overly conservative and require complex synchronization, and the 'stop the world' approach is unacceptable for interactive applications.

Innovation Solution

A method that identifies and marks candidate storage chunks as sealed, traverses search trees to find referenced elements, identifies garbage storage chunks, and reclaims unused storage capacity, with the option to save checkpoints and pause/resume traversing during tree updates or ownership changes to ensure efficient and reliable garbage collection.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If incremental garbage collection is used, then storage reclamation efficiency is improved, but synchronization complexity and conservativeness increase

Engineering Contradiction:
Improvestorage reclamation efficiencyVSAvoidsynchronization complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces sealed storage chunks as an intermediary mechanism between the garbage collector and user processes. By sealing chunks before collection, it mediates the interaction between GC and MVCC, eliminating the need for complex synchronization while enabling efficient incremental collection.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary sealing of storage chunks before garbage collection. This preliminary action marks chunks as sealed to prevent modifications during collection, allowing the GC to safely reclaim storage without complex synchronization with user processes.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If stop the world approach is used, then garbage collection reliability is improved, but user access performance deteriorates

Engineering Contradiction:
Improvegarbage collection reliabilityVSAvoiduser access performance
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent transforms the static stop-the-world GC into a dynamic incremental GC that operates continuously in the background. User processes and garbage collection proceed concurrently, with the system dynamically adapting to maintain both reliability and performance.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The garbage collection performs useful action continuously without interrupting user operations. By sealing chunks beforehand and collecting incrementally, the system maintains continuous storage reclamation while user access continues uninterrupted.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If reference counting is used, then storage tracking precision is improved, but distributed system implementation difficulty increases

Engineering Contradiction:
Improvestorage tracking precisionVSAvoiddistributed system implementation difficulty
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Instead of implementing complex distributed reference counting, the patent uses sealing as a copy-like mechanism that creates an immutable snapshot of storage chunks. This approach achieves precise tracking without the implementation complexity of distributed reference counting.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS10402316B2Tracing garbage collector for search trees under multi-version concurrency control
Publication Date: 2019.09.03 EMC IP HLDG CO LLC
  • US10402316B2 patent drawing
  • US10402316B2 patent drawing
  • US10402316B2 patent drawing

AI summary

Structures and processes for garbage collection of search trees under Multi-Version Concurrency Control (MVCC). Such search trees may be used to store data within a distributed storage system. A process detects live search tree elements using tracing and then identify storage chunks having no live elements as garbage to be reclaimed. The process can be paused and resumed to reduce impact on other system processing.