PaaS Micro-service Scheduling via Priority Queues
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


