Node-Local-Unscheduler for Container Scheduling Remediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing container scheduling techniques often result in improper scheduling due to outdated resource information and scheduling policies, leading to containers becoming stuck in a pending state, inefficient resource allocation, and potential system crashes, especially in high-demand environments, where multiple schedulers can exacerbate issues and reduce system integrity.

Innovation Solution

Implementing a node-local-unscheduler (NLU) that annotates and stops improperly scheduled containers, allowing the scheduler to reschedule them with up-to-date information, thereby preventing resource overconsumption and ensuring efficient resource allocation without the overhead of multiple schedulers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple schedulers are deployed to handle high scheduling loads, then scheduling capacity increases, but system integrity deteriorates and scheduling violations increase

Engineering Contradiction:
Improvescheduling capacityVSAvoidsystem integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the scheduling function into two distinct components: a primary scheduler that handles the main scheduling load, and a node-local-unscheduler that operates independently at each node to validate and remediate scheduling violations. This segmentation allows the system to maintain high scheduling capacity through the primary scheduler while ensuring system integrity through the distributed validation function of the node-local-unscheduler, thereby resolving the contradiction between productivity and reliability.

Inventive Principle:
Principle #1Segmentation

2Speed

If containers are scheduled quickly without validation, then scheduling speed increases, but scheduling violations increase causing containers to get stuck in pending state

Engineering Contradiction:
Improvescheduling speedVSAvoidscheduling correctness
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The node-local-unscheduler performs preliminary validation actions by continuously monitoring scheduled containers and checking them against current node conditions and scheduling policies. When a scheduling violation is detected, the unscheduler proactively annotates the container with remediation instructions before the container can get stuck in a pending state. This preliminary action ensures scheduling correctness is maintained without compromising the speed of the primary scheduler.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If scheduling validation is performed thoroughly, then scheduling correctness improves, but scheduling time increases

Engineering Contradiction:
Improvescheduling correctnessVSAvoidscheduling time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The node-local-unscheduler acts as an intermediary that continuously monitors and validates container scheduling in the background, independent of the primary scheduler's operation. Instead of blocking the scheduling process to perform validation, the unscheduler asynchronously checks scheduled containers against current node conditions and policies, and only intervenes when violations are detected. This intermediary approach maintains scheduling correctness while minimizing impact on scheduling time.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11782753B2Node-local-unscheduler for scheduling remediation
Publication Date: 2023.10.10 RED HAT LLC
  • US11782753B2 patent drawing
  • US11782753B2 patent drawing
  • US11782753B2 patent drawing

AI summary

A system for scheduling remediation includes a memory, a processor in communication with the memory, a container scheduled on a first node, a scheduler executing on the processor, and a node-local-unscheduler (“NLU”). The scheduler has a watch module. The NLU executes on the processor to determine a status of the container as failing validation. The NLU has access to scheduling policies corresponding to the container and the first node. Responsive to determining the status of the container as failing validation, the NLU annotates the container and stops execution of the container. The watch module executes on the processor to detect the annotation associated with the container. Responsive to detecting the annotation, the container is rescheduled to a second node.