Parallel Query Engine Dynamic Worker Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveresource utilizationVSAvoidworker management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #25Self-service

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

Engineering Contradiction:
Improveprocessing throughputVSAvoidadaptability to machine load
Core Design Contradiction:
ProductivityVSAdaptability or versatility

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

Inventive Principle:
Principle #23Feedback

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

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improveadaptability to processor availabilityVSAvoidpartition management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8392920B2Parallel query engine with dynamic number of workers
Publication Date: 2013.03.05 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8392920B2 patent drawing
  • US8392920B2 patent drawing
  • US8392920B2 patent drawing

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.