Dynamic Thread Pool for Filesystem Backup Slicing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data backup systems are not optimally suited for resource utilization, often leading to suboptimal performance due to static resource consumption and potential overloading or underloading of systems, especially when dealing with large filesystems.

Innovation Solution

Implementing a dynamic thread pool based on available hardware resources to efficiently crawl and slice data, allowing for the creation of uniformly sized slices that can be backed up using multiple threads, thereby optimizing resource utilization and avoiding system overload.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a static thread pool with fixed number of threads is used, then the backup process can be simplified to manage, but resource utilization becomes suboptimal and system overload may occur

Engineering Contradiction:
Improvethread pool management complexityVSAvoidresource utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements a dynamic thread pool where the number of threads is not fixed but can be adjusted based on system conditions. The thread pool size is dynamically modified during the backup process to match actual system resource availability and workload requirements, resolving the contradiction between management simplicity and resource utilization efficiency.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of thread pool size dynamically during execution. Instead of using a fixed number of threads, the system monitors available system resources and adjusts the thread pool size accordingly, allowing optimal resource utilization while maintaining manageable complexity through automated adjustment mechanisms.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If a static slicing mechanism with fixed depth levels is used, then the implementation is simpler, but performance becomes non-optimal due to overloaded or underloaded systems

Engineering Contradiction:
Improveslicing mechanism complexityVSAvoidbackup process performance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements dynamic slicing where the number of slices and their distribution across depth levels is not fixed but adapts to system conditions. The slicing mechanism dynamically adjusts based on available threads and system resources, allowing optimal performance while maintaining implementation simplicity through automated adaptation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent incorporates feedback mechanisms where the slicing mechanism monitors system resource availability and adjusts slice creation accordingly. This feedback loop ensures that the slicing strategy adapts to actual system conditions, optimizing backup performance while keeping the mechanism relatively simple through automated feedback-driven adjustment.

Inventive Principle:
Principle #23Feedback

3Productivity

If the thread pool size is increased to handle large filesystems, then backup speed improves, but system resources may be overloaded

Engineering Contradiction:
Improvebackup speedVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms that monitor system resource consumption in real-time and adjust thread pool size accordingly. This allows the system to increase thread count for faster backup when resources are available while automatically reducing it to prevent overload, maintaining both speed and stability through continuous feedback-driven adjustment.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent dynamically changes the thread pool size parameter based on system conditions rather than using a fixed high number. This flexible parameter adjustment allows the system to optimize backup speed when resources permit while preventing overload by reducing thread count when system capacity is approached, resolving the contradiction between speed and stability.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20240111593A1Dynamic slicing using a balanced approach based on system resources for maximum output
Publication Date: 2024.04.04 DELL PROD LP
  • US20240111593A1 patent drawing
  • US20240111593A1 patent drawing
  • US20240111593A1 patent drawing

AI summary

One example method includes gathering information regarding filesystem resources, based on the system resource information, identifying a thread pool size, starting a thread pool having the thread pool size, where the thread pool size is dynamically adjustable based on changes in the system resources, crawling a filesystem and identifying crawl jobs to be performed, adding the crawl jobs to the thread pool, and performing the crawl jobs. The method may further include slicing data in one or more directories that have been crawled.