PaaS Micro-service Scheduling via Priority Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Coordinating the integration of complex features in Platform-as-a-Service (PaaS) environments, such as micro-service oriented applications, persistency services, and polyglot application development, poses challenges for developers in efficiently handling service requests and managing resource allocation.

Innovation Solution

A central controller in the PaaS infrastructure parses client requests into fine-grained instance requests, assigns priorities based on factors like creator, operation type, sequence, and hierarchy level, and distributes them to execution agents, with a request queue that limits concurrent processing to prevent overload.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the platform processes all service requests concurrently without priority assignment, then the system handles more requests simultaneously, but critical operations experience delays and resource allocation becomes inefficient

Engineering Contradiction:
Improverequest processing throughputVSAvoidoperation delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system changes the parameter of request handling by introducing priority levels (high, medium, low) to service requests. This allows the scheduler to differentiate between critical and non-critical operations, ensuring that high-priority requests are processed first while maintaining overall system throughput. The priority parameter transforms the request processing mechanism from uniform treatment to differentiated handling based on operational importance.

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If the platform uses a simple request queue without priority, then the system structure remains simple, but it cannot optimize resource usage for critical operations

Engineering Contradiction:
Improverequest handling structureVSAvoidresource utilization efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The request queue is segmented into multiple priority levels (high-priority queue, medium-priority queue, low-priority queue). This segmentation allows the system to maintain a relatively simple overall structure while enabling differentiated resource allocation. Each queue level can be managed independently, allowing critical operations to receive dedicated resource attention without fundamentally redesigning the entire request handling architecture.

Inventive Principle:
Principle #1Segmentation

3Adaptability or versatility

If the platform allows unlimited concurrent start requests, then the system is more flexible in deployment, but the execution agent thread pool becomes overloaded

Engineering Contradiction:
Improvedeployment flexibilityVSAvoidexecution agent stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The scheduler acts as an intermediary between the request queue and the execution agent thread pool. It receives service requests, assigns priorities, and selectively forwards them to execution agents based on available resources and priority levels. This intermediary layer protects the execution agent thread pool from overload by filtering and prioritizing requests before they reach the execution agents, while still maintaining deployment flexibility through priority-based admission control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10437645B2Scheduling of micro-service instances
Publication Date: 2019.10.08 SAP SE
  • US10437645B2 patent drawing
  • US10437645B2 patent drawing
  • US10437645B2 patent drawing

AI summary

Embodiments facilitate the efficient handling of service requests by a Platform-as-a-Service (PaaS) infrastructure. The platform may comprise a central controller communicating with a plurality of execution agents on one or more hosts. The central controller may parse client requests manipulating application state (e.g., scale, start, stop app, clear) into a sequence of fine-grained instance requests (e.g., start, stop, stop all, clear) that are distributed to the application program interfaces (API) of execution agents on the platform. The central controller may assign a priority to the fine-grained requests. The priority may take into consideration one or more factors including but not limited to: request creator (user, system); operation type (start, stop, stop all, clear); instance number; sequence number of the fine grained request within the original received request; hierarchy level (organization, space); and application. Fine-grained requests may be distributed by a scheduler to a queue of the execution agent.