Multi-tier Scheduling for Distributed Data Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Scheduling processes across multiple computing devices is complex and inefficient, leading to underutilization of data processing capabilities in large clusters, as existing methods become impractical for thousands of devices due to increased complexity and delays.
Innovation Solution
A multi-tier scheduling approach using virtual clusters, where jobs are assigned to virtual clusters that independently schedule processes on assigned resources, with a resource distributor aggregating requests and building flow graphs to optimize resource allocation, allowing for iterative assignment of high-priority and opportunistic resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single centralized scheduler is used to manage all computing devices, then resource allocation can be optimized globally, but the scheduling complexity and processing delays increase exponentially with the number of devices
Solution Approach 1:
The patent divides the centralized scheduling system into multiple hierarchical levels: cluster-level schedulers that manage groups of computing devices, and device-level schedulers that manage individual devices. This segmentation reduces the complexity of any single scheduler while maintaining global optimization through coordinated operation across levels.
Solution Approach 2:
The patent introduces a hierarchical dimension to the scheduling architecture, transitioning from a flat single-level scheduler to a multi-level hierarchy. This adds temporal and organizational dimensions to resource allocation, allowing local optimization at each level while achieving global optimization through inter-level coordination.
2Reliability
If guaranteed processing capability is allocated to each user, then service quality is maintained, but unused capacity cannot be redistributed leading to system underutilization
Solution Approach 1:
The patent implements dynamic resource allocation where guaranteed capacity and opportunistic capacity are separated. Users receive guaranteed capacity for baseline service quality, while unused capacity is dynamically pooled and redistributed to users with additional demands, allowing the system to adapt to changing workload patterns.
Solution Approach 2:
The patent changes the allocation parameter from static guaranteed capacity to a two-tier system with guaranteed capacity and opportunistic capacity. This allows the effective allocation parameters to change based on actual usage patterns while maintaining the reliability guarantee.
3Productivity
If flow graph scheduling is applied to optimize process execution, then scheduling efficiency improves, but the computational complexity becomes infeasible for large numbers of devices
Solution Approach 1:
The patent segments the global flow graph into multiple local flow graphs at different hierarchical levels. Each cluster-level scheduler solves a smaller flow graph for its local devices, and device-level schedulers solve even smaller flow graphs for individual devices. This segmentation makes the computational problem tractable while maintaining optimization benefits.
Data Source
AI summary
A multi-tier scheduling approach includes a first tier comprising virtual cluster allocators that receive scheduling requests from processes and aggregate those requests and provide them to a second tier, namely a single resource distributor for the entire set of computing devices. The resource distributor, based on the requests from virtual cluster allocators, and also from information received from the computing devices themselves, generates a flow graph to identify an optimal scheduling of the assignment of resources to specific ones of the virtual clusters. Each virtual cluster allocator then, based on the assignment of resources assigned to it by the resource distributor, solves its own flow graph to identify an optimal scheduling of processes on the resources assigned. The scheduling of processes is performed iteratively by initially assigning resources to those processes having a high priority, and then, in subsequent iterations, assigning opportunistic resources to those processes having a lower priority.


