Distributed Job Scheduler with Self-Scheduling and Stealing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Virtualization technologies present challenges in data management due to higher workload consolidation and the need for instant, granular recovery, particularly in virtualized infrastructure environments where traditional recovery methods are inadequate.
Innovation Solution
An integrated data management and storage system that utilizes a distributed cluster of nodes for managing automated storage, backup, deduplication, replication, and archival of data across physical and virtual environments, enabling near-instantaneous recovery of virtual machines and files through snapshot management and load balancing of jobs across data storage nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If traditional recovery methods are used in virtualized infrastructure environments, then system simplicity is maintained, but recovery speed and granularity are insufficient
Solution Approach 1:
The system segments recovery operations into granular job tasks that can be independently scheduled and executed across multiple data storage nodes. Each snapshot operation is divided into discrete tasks that can be processed in parallel, enabling fast and granular recovery of specific virtual machine components without requiring complete system recovery.
Solution Approach 2:
The patent introduces a distributed job scheduling dimension overlaying the traditional storage architecture. Job scheduler processes distribute recovery tasks across multiple nodes in a coordinated manner, adding a temporal and spatial dimension to recovery operations that enables parallel processing and accelerates recovery speed without fundamentally redesigning the underlying storage system.
2Productivity
If workload consolidation is increased in virtualized environments, then resource efficiency improves, but data management complexity increases
Solution Approach 1:
The job scheduler implements self-service mechanisms where individual job tasks automatically select and execute on appropriate data storage nodes based on current system state. Each node independently manages its own job queue and makes localized scheduling decisions, eliminating the need for complex centralized coordination while maintaining efficient workload consolidation across the distributed system.
Solution Approach 2:
The system dynamically adapts workload distribution based on real-time conditions at each data storage node. Job scheduler processes continuously monitor node availability and adjust task allocation dynamically, allowing the system to efficiently consolidate workloads during normal operation while automatically distributing complexity when nodes experience varying load conditions.
3Ease of operation
If job queue length threshold is set low for job stealing, then load balancing responsiveness improves, but unnecessary job transfers increase
Solution Approach 1:
The system dynamically adjusts the job queue length threshold parameter based on system conditions. The threshold is not fixed but adapts to current workload patterns and node capacities, allowing the load balancing mechanism to remain responsive without triggering excessive job transfers during periods of normal operation. This parameter adaptation resolves the contradiction between responsiveness and overhead.
Solution Approach 2:
The load balancing mechanism incorporates feedback from job queue length monitoring across all data storage nodes. When a node's queue exceeds the threshold, the system responds by transferring jobs to nodes with lower queues. This feedback loop ensures responsive load balancing while the threshold mechanism prevents overly aggressive transfers by requiring meaningful queue length differences before initiating job stealing.
Data Source
AI summary
Methods and systems for improving the performance of a distributed job scheduler using job self-scheduling and job stealing are described. The distributed job scheduler may schedule jobs to be run among data storage nodes within a cluster. Each node in the cluster may make a localized decision regarding which jobs should be executed by the node by periodically polling candidate jobs from a table of candidate jobs stored using a distributed metadata store. Upon completion of a job, the job may self-schedule another instance of itself if the next instance of the job should be run before the next polling of candidate jobs by the node that ran the completed job. The node may attempt to steal one or more jobs from a second node within the cluster if a job queue length for a job queue associated with the node falls below a queue length threshold.


