Database Garbage Collection Parallelization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Database recovery processes are hindered by inefficient garbage collection, which can lead to prolonged downtime due to high processor usage and the need for additional resources, especially during the replay of recovery operations and cleanup log processing.

Innovation Solution

Implementing a dynamic approach to garbage collection by monitoring processor usage and adjusting the number of garbage collector threads, adding more threads if usage is below a threshold and decreasing them if usage is above a threshold, while allowing garbage collection to continue concurrently with database recovery and online operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional sequential garbage collection is used during database recovery, then processor resources are conserved, but recovery time is prolonged

Engineering Contradiction:
Improverecovery speedVSAvoidprocessor usage
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system dynamically adjusts the number of garbage collector threads based on monitored processor usage. When processor usage falls below a first threshold, additional garbage collector threads are added to accelerate recovery. When processor usage exceeds a second threshold, garbage collector threads are removed to conserve resources. This dynamic adjustment resolves the contradiction by making the garbage collection capacity adaptive rather than fixed.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system periodically monitors processor usage during database recovery and adjusts garbage collection thread count accordingly. This periodic monitoring and adjustment mechanism allows the system to oscillate between aggressive parallelization (when resources are available) and conservative resource usage (when processor load is high), thereby achieving both fast recovery and resource conservation over time.

Inventive Principle:
Principle #19Periodic action

2Loss of time

If multiple garbage collector threads are added to speed up recovery, then recovery time is reduced, but processor load increases

Engineering Contradiction:
ImprovedowntimeVSAvoidprocessor load
Core Design Contradiction:
Loss of timeVSPower

Solution Approach 1:

The system implements feedback control by continuously monitoring processor usage and using this information to adjust the number of garbage collector threads. The monitoring component provides real-time feedback on processor load, and this feedback drives the decision to add or remove garbage collector threads, creating a closed-loop control system that balances recovery speed against processor load.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the parameter of garbage collector thread count based on processor usage conditions. By adjusting this parameter dynamically - increasing thread count when processor usage is low and decreasing it when processor usage is high - the system optimizes the balance between minimizing downtime and controlling processor load.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If garbage collection is performed concurrently with recovery operations, then overall recovery time is reduced, but resource contention increases

Engineering Contradiction:
Improverecovery throughputVSAvoidthread management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the database recovery workload by separating recovery operations into distinct thread groups: redo log replay threads that perform recovery operations and garbage collector threads that perform cleanup operations. This segmentation allows concurrent execution of recovery and garbage collection while maintaining clear boundaries and management of each thread group, reducing the complexity that would otherwise arise from managing a single monolithic recovery process.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10481986B2Automatic adoption of parallelized database garbage collection
Publication Date: 2019.11.19 SAP SE
  • US10481986B2 patent drawing
  • US10481986B2 patent drawing
  • US10481986B2 patent drawing

AI summary

Recovery of a database system by taking the database system offline is initiated. Thereafter, recovery operations specified by a redo log of the database system are replayed. A cleanup log is generated that identifies cleanup operations occurring during the replay of the recovery operations for garbage collection. Concurrent with the startup of the database, garbage collection of the cleanup operations as specified in the database savepoint is initiated. In addition, concurrent with the replay of the recovery operations, garbage collection of the cleanup operations specified by the cleanup log is initiated. The amount of parallelization of the garbage collection can be varied based on utilized processor resources. The database system is later brought online after all of the recovery operations are replayed.