Stateless Scheduler with Local Cache for QoS Compliance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional schedulers fail to adequately address Quality of Service (QoS) targets and Service Level Targets (SLTs) in computing environments, such as ensuring 95th percentile expected completion time and resource usage, and lack extendibility and maintainability, making it difficult to prove the correctness of scheduling algorithms.

Innovation Solution

A stateless, deterministic scheduler with interruption recovery and scalable resource allocation is implemented, using a local cache to dynamically allocate resources based on real-time data from compute and Continuous Integration clouds, allowing for iterative optimization of workload scheduling and prioritization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional schedulers are used to allocate computing resources, then basic scheduling functionality is provided, but Quality of Service targets and Service Level Targets cannot be adequately addressed

Engineering Contradiction:
ImproveQoS and SLT complianceVSAvoidscheduler complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The scheduling system is divided into multiple independent components: workload manager, scheduler, discovery engine, and local cache. Each component handles specific aspects of resource allocation and scheduling decisions, allowing the system to meet QoS targets without requiring a monolithic complex scheduler

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by maintaining a local cache of computing resource information and pre-identifying suitable resources for workload types. This advance preparation enables the scheduler to make informed decisions that comply with QoS and SLT requirements without real-time complexity

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If conventional schedulers are used, then scheduling operations are performed, but extendibility and maintainability are insufficient

Engineering Contradiction:
ImproveextendibilityVSAvoidscheduler structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The scheduler is designed as a universal component that can handle multiple workload types and computing resource configurations through a standardized interface. The discovery engine and local cache provide generic mechanisms that adapt to different scheduling scenarios without requiring custom scheduler implementations

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The local cache acts as an intermediary between the scheduler and computing resources, providing a standardized data structure that simplifies scheduler operations. This mediator layer improves maintainability by isolating the scheduler from direct complexity of resource management while enhancing extendibility through configurable cache parameters

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If resources are statically allocated, then simple resource management is achieved, but efficient resource utilization cannot be optimized

Engineering Contradiction:
Improveresource utilization efficiencyVSAvoidresource allocation mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements dynamic resource allocation where the scheduler continuously monitors workload demands and computing resource availability through the local cache. Resources are dynamically assigned and reassigned based on real-time conditions, maximizing utilization efficiency while the modular architecture keeps the allocation mechanism manageable

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The discovery engine provides continuous feedback about computing resource status and workload characteristics to the scheduler and local cache. This feedback loop enables efficient resource utilization by allowing the system to adapt allocations based on actual performance data while maintaining a relatively simple allocation mechanism through iterative adjustments

Inventive Principle:
Principle #23Feedback

4Reliability

If the scheduler does not have interruption recovery capability, then the scheduling process is simpler, but high availability cannot be ensured

Engineering Contradiction:
ImproveavailabilityVSAvoidinterruption recovery mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements beforehand cushioning by maintaining a local cache of computing resource information and pre-identifying alternative resources. This preparation ensures that if interruptions occur, the scheduler can quickly recover by selecting from pre-validated alternatives without complex real-time decision-making

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

Solution Approach 2:

The interruption recovery mechanism allows the system to discard failed scheduling attempts and recover by selecting alternative computing resources from the local cache. This approach ensures high availability while keeping the recovery mechanism relatively simple through systematic retry logic and resource substitution

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS11243818B2Systems, methods, and apparatuses for implementing a scheduler and workload manager that identifies and optimizes horizontally scalable workloads
Publication Date: 2022.02.08 SALESFORCE INC
  • US11243818B2 patent drawing
  • US11243818B2 patent drawing
  • US11243818B2 patent drawing

AI summary

In accordance with disclosed embodiments, there are provided systems, methods, and apparatuses for implementing a stateless, deterministic scheduler and work discovery system with interruption recovery. For instance, according to one embodiment, there is disclosed a system to implement a stateless scheduler service, in which the system includes: a processor and a memory to execute instructions at the system; a compute resource discovery engine to identify one or more computing resources available to execute workload tasks; a workload discovery engine to identify a plurality of workload tasks to be scheduled for execution; a cache to store information on behalf of the compute resource discovery engine and the workload discovery engine; a scheduler to request information from the cache specifying the one or more computing resources available to execute workload tasks and the plurality of workload tasks to be scheduled for execution; and further in which the scheduler is to schedule at least a portion of the plurality of workload tasks for execution via the one or more computing resources based on the information requested. Other related embodiments are disclosed.