Parallel Query Engine Dynamic Worker Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In multi-core computing systems, the fixed number of parallel workers leads to suboptimal utilization of computational resources, as processing stalls when one processor is busy, and it is difficult to determine the ideal number of workers to handle concurrent computations effectively.
Innovation Solution
A method is implemented where worker cores request tasks from a work queue, process the tasks by creating replicas and scheduling them on a scheduler queue, allowing for a dynamic number of worker cores to process a sequence, ensuring efficient use of available cores and adjusting based on machine load.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a fixed number of parallel workers is used, then the system structure is simple and easy to implement, but computational resources are not optimally utilized and processing stalls when processors are busy
Solution Approach 1:
The patent implements a dynamic worker system where the number of parallel workers is not fixed but can adjust during query execution. The system monitors processor availability and dynamically adds or removes workers based on current system load, allowing optimal resource utilization while maintaining manageable complexity through event-driven worker creation and destruction
Solution Approach 2:
The query execution system automatically manages its own worker population without external intervention. When processors become available, the system self-initiates new worker creation; when processors are busy, it automatically reduces worker count, making the system self-regulating and eliminating the need for manual worker management
2Productivity
If the number of workers is increased to handle concurrent computations, then processing productivity improves, but it becomes difficult to determine the ideal number of workers to handle machine load
Solution Approach 1:
The system implements feedback mechanisms where worker performance and processor availability are continuously monitored. Based on this feedback, the system automatically adjusts the number of active workers, creating a closed-loop control system that adapts to changing machine load conditions and optimizes processing throughput dynamically
Solution Approach 2:
The patent changes the parameter of worker count from a static value to a dynamic variable that can be adjusted during execution. This allows the system to optimize processing throughput by modifying the number of workers based on current system conditions, achieving both high productivity and adaptability
3Adaptability or versatility
If a fixed number of partitions is used for each query operator, then the data processing structure is simple, but the system cannot adapt to dynamic processor availability
Solution Approach 1:
The patent makes the partition structure dynamic by allowing the number of partitions to change during query execution. Partitions are created and destroyed based on processor availability, enabling the system to adapt to dynamic conditions while managing complexity through on-demand partition creation rather than pre-defining all partitions
Data Source
AI summary
Partitioning query execution work of a sequence including a plurality of elements. A method includes a worker core requesting work from a work queue. In response, the worker core receives a task from the work queue. The task is a replicable sequence-processing task including two distinct steps: scheduling a copy of the task on the scheduler queue and processing a sequence. The worker core processes the task by: creating a replica of the task and placing the replica of the task on the work queue, and beginning processing the sequence. The acts are repeated for one or more additional worker cores, where receiving a task from the work queue is performed by receiving one or more replicas of tasks placed on the task queue by earlier performances of creating a replica of the task and placing the replica of the task on the work queue by a different worker core.


