Task Queue Dependency Management via Deferred Queuing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer systems face challenges in efficiently managing task dependencies during scheduling, leading to performance penalties and computational overhead, as dependent tasks are deferred until preceding tasks complete, affecting queuing order and time complexity.

Innovation Solution

A method and system for dependency management in task scheduling that uses a pending task queue and a deferred task queue, where tasks are marked as dependent and deferred until preceding tasks finish, allowing reinsertion into the pending queue upon completion, maintaining constant time complexity and queuing order without compromising non-dependent task execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If dependent tasks are deferred until preceding tasks complete execution, then task dependency correctness is ensured, but time complexity increases and scheduling efficiency deteriorates

Engineering Contradiction:
Improvetask dependency correctnessVSAvoidscheduling efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The task queue is segmented into two distinct queues: a pending task queue for tasks ready for execution and a deferred task queue for tasks waiting for dependencies. This segmentation allows independent processing of non-dependent tasks while isolating dependent tasks, preventing them from blocking the entire scheduling system and maintaining O(1) time complexity for queue operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A deferred task queue acts as an intermediary structure between the pending task queue and task execution. Tasks that cannot be executed immediately due to dependencies are moved to this intermediate queue, allowing the scheduler to continue processing other tasks without waiting, while the deferred tasks are periodically checked and reinserted when their dependencies are satisfied.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If dependent tasks are removed from pending queue and placed in deferred queue, then queuing order is preserved, but device complexity increases

Engineering Contradiction:
Improvequeuing orderVSAvoidqueue management complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The deferred task queue uses the same data structure and management approach as the pending task queue (a simple FIFO queue). This merging of management strategies reduces complexity by reusing proven queue implementations rather than creating a complex dependency-tracking structure, while still maintaining proper ordering through the creation timestamp comparison mechanism.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If tasks are sorted by creation stamp in pending queue, then fairness and queuing order are maintained, but time complexity for dependency checking increases

Engineering Contradiction:
Improvequeuing order maintenanceVSAvoiddependency checking efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Tasks are pre-sorted by creation timestamp when inserted into the pending task queue. This preliminary ordering allows the scheduler to efficiently check dependencies by only comparing with the first task in the queue (the task with the earliest creation timestamp), reducing dependency checking from O(n) to O(1) time complexity while maintaining fairness.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9632826B2Prioritizing deferred tasks in pending task queue based on creation timestamp
Publication Date: 2017.04.25 MAPLEBEAR INC
  • US9632826B2 patent drawing
  • US9632826B2 patent drawing
  • US9632826B2 patent drawing

AI summary

A task is marked as dependent upon a preceding task. The task that is attempted to be taken for execution from a head of a pending task queue that is marked is deferred. The deferred task is removed from the pending task queue and placed in a deferred task queue. The deferred task is reinserted back into the pending task queue for execution upon determining that the preceding tasks are completed.